From 11e22750069758d2c37585a89b8bf78056d29f80 Mon Sep 17 00:00:00 2001 From: fnieddu <118167989+fnieddu@users.noreply.github.com> Date: Wed, 20 Dec 2023 15:11:46 +0100 Subject: [PATCH] feat: upgrade to llvm 17 (#12) * build(deps): update zkllvm to version based on llvm 17 * added tests starting from onnx * pinned libs/onnx-mlir to latest zkML Patch --------- Co-authored-by: Daniel Kales <11509575+dkales@users.noreply.github.com> --- libs/CMakeLists.txt | 2 +- libs/onnx-mlir | 2 +- .../mlir-assigner/parser/evaluator.hpp | 12 +- .../include/mlir-assigner/parser/parser.hpp | 4 +- .../tests/Models/BasicMnist/BasicMnist.mlir | 122 - .../tests/Models/BasicMnist/BasicMnist.res | 3 - .../BasicMnist/DotProductBasicMnist.json | 272 --- .../BasicMnist/DotProductBasicMnist.mlir | 118 - .../{BasicMnist.json => basic_mnist.json} | 0 .../tests/Models/BasicMnist/basic_mnist.onnx | Bin 0 -> 115068 bytes ...tProductBasicMnist.res => basic_mnist.res} | 0 .../Models/ConvMnist/UnOptimizedMnist-12.json | 109 - .../Models/ConvMnist/UnOptimizedMnist-12.mlir | 198 -- .../Models/ConvMnist/UnOptimizedMnist-12.res | 3 - .../tests/Models/ConvMnist/mnist-12.mlir | 222 -- .../tests/Models/ConvMnist/mnist-12.onnx | Bin 0 -> 26143 bytes mlir-assigner/tests/Ops/Abs/AbsSimple.mlir | 14 - mlir-assigner/tests/Ops/Acos/AcosSimple.json | 1 - mlir-assigner/tests/Ops/Acos/AcosSimple.mlir | 14 - mlir-assigner/tests/Ops/Acos/AcosSimple.res | 3 - .../tests/Ops/Acosh/AcoshSimple.json | 1 - mlir-assigner/tests/Ops/Add/AddSimple.json | 26 - mlir-assigner/tests/Ops/Add/AddSimple.mlir | 16 - mlir-assigner/tests/Ops/Add/AddSimple.res | 3 - mlir-assigner/tests/Ops/And/AndSimple.json | 1 - mlir-assigner/tests/Ops/And/AndSimple.res | 3 - mlir-assigner/tests/Ops/Ceil/CeilSimple.mlir | 14 - mlir-assigner/tests/Ops/Clip/ClipSimple.mlir | 21 - .../tests/Ops/Floor/FloorSimple.mlir | 14 - .../tests/Ops/MaxPool/MaxPoolSimple.json | 272 --- .../tests/Ops/MaxPool/MaxPoolSimple.mlir | 39 - .../tests/Ops/MaxPool/MaxPoolSimple.res | 3 - mlir-assigner/tests/Ops/Mean/MeanSimple.mlir | 20 - mlir-assigner/tests/Ops/Mlir/Conv/.ignore | 1 + .../Conv/ConvMnist12First} | 0 .../Ops/{ => Mlir}/Conv/ConvMnist12First.json | 0 .../tests/Ops/Mlir/Conv/ConvMnist12First.mlir | 45 + .../Ops/{ => Mlir}/Conv/ConvMnist12First.res | 0 .../Conv/DotProductConvMnist12First.json | 0 .../Conv/DotProductConvMnist12First.mlir | 0 .../Conv/DotProductConvMnist12First.res | 0 .../Conv/DotProductConvMnist12Second.json | 0 .../Conv/DotProductConvMnist12Second.mlir | 0 .../Conv/DotProductConvMnist12Second.res | 0 .../Gemm/DotProductGemmAlphaBeta.json | 0 .../Gemm/DotProductGemmAlphaBeta.mlir | 0 .../Gemm/DotProductGemmAlphaBeta.res | 0 .../Gemm/DotProductGemmAlphaBetaBoth.json | 0 .../Gemm/DotProductGemmAlphaBetaBoth.mlir | 0 .../Gemm/DotProductGemmAlphaBetaBoth.res | 0 .../DotProductGemmAlphaBetaBothTrans.json | 0 .../DotProductGemmAlphaBetaBothTrans.mlir | 0 .../Gemm/DotProductGemmAlphaBetaBothTrans.res | 0 .../{ => Mlir}/Gemm/DotProductGemmBeta.json | 0 .../{ => Mlir}/Gemm/DotProductGemmBeta.mlir | 0 .../{ => Mlir}/Gemm/DotProductGemmBeta.res | 0 .../{ => Mlir}/Gemm/DotProductGemmSimple.json | 0 .../{ => Mlir}/Gemm/DotProductGemmSimple.mlir | 0 .../{ => Mlir}/Gemm/DotProductGemmSimple.res | 0 .../Ops/{ => Mlir}/Gemm/GemmAlphaBeta.json | 0 .../Ops/{ => Mlir}/Gemm/GemmAlphaBeta.mlir | 0 .../Ops/{ => Mlir}/Gemm/GemmAlphaBeta.res | 0 .../{ => Mlir}/Gemm/GemmAlphaBetaBoth.json | 0 .../{ => Mlir}/Gemm/GemmAlphaBetaBoth.mlir | 0 .../Ops/{ => Mlir}/Gemm/GemmAlphaBetaBoth.res | 0 .../Gemm/GemmAlphaBetaBothTrans.json | 0 .../Gemm/GemmAlphaBetaBothTrans.mlir | 0 .../Gemm/GemmAlphaBetaBothTrans.res | 0 .../tests/Ops/{ => Mlir}/Gemm/GemmBeta.json | 0 .../tests/Ops/{ => Mlir}/Gemm/GemmBeta.mlir | 0 .../tests/Ops/{ => Mlir}/Gemm/GemmBeta.res | 0 .../tests/Ops/{ => Mlir}/Gemm/GemmSimple.json | 0 .../tests/Ops/{ => Mlir}/Gemm/GemmSimple.mlir | 0 .../tests/Ops/{ => Mlir}/Gemm/GemmSimple.res | 0 .../{ => Mlir}/MatMul/DotProductMatMul11.json | 0 .../{ => Mlir}/MatMul/DotProductMatMul11.mlir | 0 .../{ => Mlir}/MatMul/DotProductMatMul11.res | 0 .../MatMul/DotProductMatMul1616.json | 0 .../MatMul/DotProductMatMul1616.mlir | 0 .../MatMul/DotProductMatMul1616.res | 0 .../MatMul/DotProductMatMul1dim.json | 0 .../MatMul/DotProductMatMul1dim.mlir | 0 .../MatMul/DotProductMatMul1dim.res | 0 .../MatMul/DotProductMatMulMultiDim.json | 0 .../MatMul/DotProductMatMulMultiDim.mlir | 0 .../MatMul/DotProductMatMulMultiDim.res | 0 .../tests/Ops/{ => Mlir}/MatMul/MatMul11.json | 0 .../tests/Ops/{ => Mlir}/MatMul/MatMul11.mlir | 0 .../tests/Ops/{ => Mlir}/MatMul/MatMul11.res | 0 .../Ops/{ => Mlir}/MatMul/MatMul1616.json | 0 .../Ops/{ => Mlir}/MatMul/MatMul1616.mlir | 0 .../Ops/{ => Mlir}/MatMul/MatMul1616.res | 0 .../Ops/{ => Mlir}/MatMul/MatMul1dim.json | 0 .../Ops/{ => Mlir}/MatMul/MatMul1dim.mlir | 0 .../Ops/{ => Mlir}/MatMul/MatMul1dim.res | 0 .../Ops/{ => Mlir}/MatMul/MatMulMultiDim.json | 0 .../Ops/{ => Mlir}/MatMul/MatMulMultiDim.mlir | 0 .../Ops/{ => Mlir}/MatMul/MatMulMultiDim.res | 0 mlir-assigner/tests/Ops/Mod/ModFloat.mlir | 17 - mlir-assigner/tests/Ops/Mul/MulSimple.json | 26 - mlir-assigner/tests/Ops/Mul/MulSimple.mlir | 16 - mlir-assigner/tests/Ops/Mul/MulSimple.res | 3 - mlir-assigner/tests/Ops/Neg/NegSimple.mlir | 14 - .../tests/Ops/{ => Onnx}/Abs/AbsSimple.json | 0 .../tests/Ops/{ => Onnx}/Abs/AbsSimple.onnx | 0 .../tests/Ops/{ => Onnx}/Abs/AbsSimple.res | 0 .../Ops/{Relu/Relu.res => Onnx/Acos/.ignore} | 0 .../tests/Ops/Onnx/Acos/AcosSimple.json | 1 + .../tests/Ops/Onnx/Acos/AcosSimple.onnx | 14 + .../tests/Ops/Onnx/Acos/AcosSimple.res | 3 + mlir-assigner/tests/Ops/Onnx/Acosh/.ignore | 0 .../Ops/{ => Onnx}/Acosh/AcoshSimple.mlir | 0 .../tests/Ops/Onnx/Acosh/AcoshSimple.onnx | 13 + .../Ops/{ => Onnx}/Acosh/AcoshSimple.res | 0 .../tests/Ops/Onnx/Add/AddSimple.json | 1 + .../tests/Ops/Onnx/Add/AddSimple.onnx | 19 + .../tests/Ops/Onnx/Add/AddSimple.res | 3 + mlir-assigner/tests/Ops/Onnx/And/.ignore | 0 .../tests/Ops/Onnx/And/AndSimple.json | 1 + .../tests/Ops/{ => Onnx}/And/AndSimple.mlir | 2 +- .../tests/Ops/Onnx/And/AndSimple.onnx | 19 + .../tests/Ops/Onnx/And/AndSimple.res | 3 + .../tests/Ops/{ => Onnx}/Ceil/CeilSimple.json | 0 .../tests/Ops/{ => Onnx}/Ceil/CeilSimple.onnx | 0 .../tests/Ops/{ => Onnx}/Ceil/CeilSimple.res | 0 .../tests/Ops/{ => Onnx}/Clip/ClipSimple.json | 0 .../tests/Ops/{ => Onnx}/Clip/ClipSimple.onnx | Bin .../tests/Ops/{ => Onnx}/Clip/ClipSimple.res | 0 .../tests/Ops/Onnx/Conv/ConvMnist12First.json | 1 + .../tests/Ops/Onnx/Conv/ConvMnist12First.onnx | 28 + .../tests/Ops/Onnx/Conv/ConvMnist12First.res | 3 + .../Onnx/Conv/ConvMnist12FirstWithBias.json | 1 + .../Onnx/Conv/ConvMnist12FirstWithBias.onnx | 33 + .../Onnx/Conv/ConvMnist12FirstWithBias.res | 3 + .../tests/Ops/{ => Onnx}/Div/DivSimple.json | 0 .../tests/Ops/{ => Onnx}/Div/DivSimple.mlir | 0 .../tests/Ops/{ => Onnx}/Div/DivSimple.res | 0 .../Ops/{ => Onnx}/Floor/FloorSimple.json | 0 .../Ops/{ => Onnx}/Floor/FloorSimple.onnx | 0 .../Ops/{ => Onnx}/Floor/FloorSimple.res | 0 .../tests/Ops/Onnx/Gemm/GemmSimple.json | 1 + .../tests/Ops/Onnx/Gemm/GemmSimple.onnx | Bin 0 -> 195 bytes .../tests/Ops/Onnx/Gemm/GemmSimple.res | 3 + .../tests/Ops/Onnx/MatMul/MatMulSimple.json | 1 + .../tests/Ops/Onnx/MatMul/MatMulSimple.onnx | 16 + .../tests/Ops/Onnx/MatMul/MatMulSimple.res | 3 + .../tests/Ops/Onnx/MaxPool/MaxPoolSimple.json | 1 + .../tests/Ops/Onnx/MaxPool/MaxPoolSimple.onnx | Bin 0 -> 191 bytes .../tests/Ops/Onnx/MaxPool/MaxPoolSimple.res | 3 + .../tests/Ops/{ => Onnx}/Mean/MeanSimple.json | 0 .../tests/Ops/{ => Onnx}/Mean/MeanSimple.onnx | 0 .../tests/Ops/{ => Onnx}/Mean/MeanSimple.res | 0 .../tests/Ops/{ => Onnx}/Mod/ModFloat.json | 0 .../tests/Ops/{ => Onnx}/Mod/ModFloat.onnx | 0 .../tests/Ops/{ => Onnx}/Mod/ModFloat.res | 0 .../tests/Ops/Onnx/Mul/MulSimple.json | 1 + .../tests/Ops/Onnx/Mul/MulSimple.onnx | 19 + .../tests/Ops/Onnx/Mul/MulSimple.res | 3 + .../tests/Ops/{ => Onnx}/Neg/NegSimple.json | 0 .../tests/Ops/{ => Onnx}/Neg/NegSimple.onnx | 0 .../tests/Ops/{ => Onnx}/Neg/NegSimple.res | 0 .../Reciprocal/ReciprocalSimple.json | 0 .../Reciprocal/ReciprocalSimple.onnx | 0 .../Reciprocal/ReciprocalSimple.res | 0 .../tests/Ops/Onnx/Relu/ReLuMnist12.json | 1 + .../tests/Ops/Onnx/Relu/ReLuMnist12.onnx | 15 + .../tests/Ops/Onnx/Relu/ReLuMnist12.res | 3 + .../tests/Ops/Onnx/Relu/ReluSimple.json | 1 + .../tests/Ops/Onnx/Relu/ReluSimple.onnx | 14 + .../tests/Ops/Onnx/Relu/ReluSimple.res | 3 + .../Ops/{ => Onnx}/Round/RoundSimple.json | 0 .../Ops/{ => Onnx}/Round/RoundSimple.onnx | 0 .../Ops/{ => Onnx}/Round/RoundSimple.res | 0 .../tests/Ops/{ => Onnx}/Sign/SignSimple.json | 0 .../tests/Ops/{ => Onnx}/Sign/SignSimple.onnx | 0 .../tests/Ops/{ => Onnx}/Sign/SignSimple.res | 0 .../Ops/Onnx/Softmax/SoftmaxBasicMnist.json | 1 + .../Ops/Onnx/Softmax/SoftmaxBasicMnist.onnx | 14 + .../Ops/Onnx/Softmax/SoftmaxBasicMnist.res | 3 + .../tests/Ops/Onnx/Sub/SubSimple.json | 1 + .../tests/Ops/Onnx/Sub/SubSimple.onnx | 19 + .../tests/Ops/Onnx/Sub/SubSimple.res | 3 + .../tests/Ops/{ => Onnx}/Sum/SumSimple.json | 0 .../tests/Ops/{ => Onnx}/Sum/SumSimple.onnx | 0 .../tests/Ops/{ => Onnx}/Sum/SumSimple.res | 0 .../Ops/Reciprocal/ReciprocalSimple.mlir | 15 - mlir-assigner/tests/Ops/Relu/ReLuMnist12.json | 2001 ----------------- mlir-assigner/tests/Ops/Relu/ReLuMnist12.mlir | 20 - mlir-assigner/tests/Ops/Relu/ReLuMnist12.res | 3 - mlir-assigner/tests/Ops/Relu/ReluSimple.json | 14 - mlir-assigner/tests/Ops/Relu/ReluSimple.mlir | 16 - mlir-assigner/tests/Ops/Relu/ReluSimple.res | 3 - .../tests/Ops/Round/RoundSimple.mlir | 30 - mlir-assigner/tests/Ops/Sign/SignSimple.mlir | 20 - .../tests/Ops/Softmax/SoftmaxBasicMnist.json | 14 - .../tests/Ops/Softmax/SoftmaxBasicMnist.mlir | 38 - .../tests/Ops/Softmax/SoftmaxBasicMnist.res | 3 - mlir-assigner/tests/Ops/Sub/SubSimple.json | 26 - mlir-assigner/tests/Ops/Sub/SubSimple.mlir | 16 - mlir-assigner/tests/Ops/Sub/SubSimple.res | 3 - mlir-assigner/tests/Ops/Sum/SumSimple.mlir | 18 - mlir-assigner/tests/run.py | 192 +- nix/zkllvm/default.nix | 6 +- zkml-onnx-compiler/src/CMakeLists.txt | 1 + .../mlir/Conversion/AffineFullUnrollPass.cpp | 4 +- .../Conversion/AffineFullUnrollPattern.cpp | 4 +- zkml-onnx-compiler/src/zkml-onnx-compiler.cpp | 100 +- 207 files changed, 525 insertions(+), 3953 deletions(-) delete mode 100644 mlir-assigner/tests/Models/BasicMnist/BasicMnist.mlir delete mode 100644 mlir-assigner/tests/Models/BasicMnist/BasicMnist.res delete mode 100644 mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.json delete mode 100644 mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.mlir rename mlir-assigner/tests/Models/BasicMnist/{BasicMnist.json => basic_mnist.json} (100%) create mode 100644 mlir-assigner/tests/Models/BasicMnist/basic_mnist.onnx rename mlir-assigner/tests/Models/BasicMnist/{DotProductBasicMnist.res => basic_mnist.res} (100%) delete mode 100644 mlir-assigner/tests/Models/ConvMnist/UnOptimizedMnist-12.json delete mode 100644 mlir-assigner/tests/Models/ConvMnist/UnOptimizedMnist-12.mlir delete mode 100644 mlir-assigner/tests/Models/ConvMnist/UnOptimizedMnist-12.res delete mode 100644 mlir-assigner/tests/Models/ConvMnist/mnist-12.mlir create mode 100644 mlir-assigner/tests/Models/ConvMnist/mnist-12.onnx delete mode 100644 mlir-assigner/tests/Ops/Abs/AbsSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Acos/AcosSimple.json delete mode 100644 mlir-assigner/tests/Ops/Acos/AcosSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Acos/AcosSimple.res delete mode 100644 mlir-assigner/tests/Ops/Acosh/AcoshSimple.json delete mode 100644 mlir-assigner/tests/Ops/Add/AddSimple.json delete mode 100644 mlir-assigner/tests/Ops/Add/AddSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Add/AddSimple.res delete mode 100644 mlir-assigner/tests/Ops/And/AndSimple.json delete mode 100644 mlir-assigner/tests/Ops/And/AndSimple.res delete mode 100644 mlir-assigner/tests/Ops/Ceil/CeilSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Clip/ClipSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Floor/FloorSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.json delete mode 100644 mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.res delete mode 100644 mlir-assigner/tests/Ops/Mean/MeanSimple.mlir create mode 100644 mlir-assigner/tests/Ops/Mlir/Conv/.ignore rename mlir-assigner/tests/Ops/{Conv/ConvMnist12First.mlir => Mlir/Conv/ConvMnist12First} (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/ConvMnist12First.json (100%) create mode 100644 mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.mlir rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/ConvMnist12First.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/DotProductConvMnist12First.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/DotProductConvMnist12First.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/DotProductConvMnist12First.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/DotProductConvMnist12Second.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/DotProductConvMnist12Second.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Conv/DotProductConvMnist12Second.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBeta.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBeta.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBeta.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBetaBoth.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBetaBoth.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBetaBoth.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBetaBothTrans.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBetaBothTrans.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmAlphaBetaBothTrans.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmBeta.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmBeta.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmBeta.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmSimple.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/DotProductGemmSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBeta.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBeta.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBeta.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBetaBoth.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBetaBoth.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBetaBoth.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBetaBothTrans.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBetaBothTrans.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmAlphaBetaBothTrans.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmBeta.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmBeta.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmBeta.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmSimple.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/Gemm/GemmSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul11.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul11.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul11.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul1616.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul1616.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul1616.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul1dim.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul1dim.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMul1dim.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMulMultiDim.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMulMultiDim.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/DotProductMatMulMultiDim.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul11.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul11.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul11.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul1616.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul1616.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul1616.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul1dim.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul1dim.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMul1dim.res (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMulMultiDim.json (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMulMultiDim.mlir (100%) rename mlir-assigner/tests/Ops/{ => Mlir}/MatMul/MatMulMultiDim.res (100%) delete mode 100644 mlir-assigner/tests/Ops/Mod/ModFloat.mlir delete mode 100644 mlir-assigner/tests/Ops/Mul/MulSimple.json delete mode 100644 mlir-assigner/tests/Ops/Mul/MulSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Mul/MulSimple.res delete mode 100644 mlir-assigner/tests/Ops/Neg/NegSimple.mlir rename mlir-assigner/tests/Ops/{ => Onnx}/Abs/AbsSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Abs/AbsSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Abs/AbsSimple.res (100%) rename mlir-assigner/tests/Ops/{Relu/Relu.res => Onnx/Acos/.ignore} (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.res create mode 100644 mlir-assigner/tests/Ops/Onnx/Acosh/.ignore rename mlir-assigner/tests/Ops/{ => Onnx}/Acosh/AcoshSimple.mlir (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.onnx rename mlir-assigner/tests/Ops/{ => Onnx}/Acosh/AcoshSimple.res (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Add/AddSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Add/AddSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Add/AddSimple.res create mode 100644 mlir-assigner/tests/Ops/Onnx/And/.ignore create mode 100644 mlir-assigner/tests/Ops/Onnx/And/AndSimple.json rename mlir-assigner/tests/Ops/{ => Onnx}/And/AndSimple.mlir (93%) create mode 100644 mlir-assigner/tests/Ops/Onnx/And/AndSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/And/AndSimple.res rename mlir-assigner/tests/Ops/{ => Onnx}/Ceil/CeilSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Ceil/CeilSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Ceil/CeilSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Clip/ClipSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Clip/ClipSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Clip/ClipSimple.res (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.res create mode 100644 mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.res rename mlir-assigner/tests/Ops/{ => Onnx}/Div/DivSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Div/DivSimple.mlir (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Div/DivSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Floor/FloorSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Floor/FloorSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Floor/FloorSimple.res (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.res create mode 100644 mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.res create mode 100644 mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.res rename mlir-assigner/tests/Ops/{ => Onnx}/Mean/MeanSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Mean/MeanSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Mean/MeanSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Mod/ModFloat.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Mod/ModFloat.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Mod/ModFloat.res (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.res rename mlir-assigner/tests/Ops/{ => Onnx}/Neg/NegSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Neg/NegSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Neg/NegSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Reciprocal/ReciprocalSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Reciprocal/ReciprocalSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Reciprocal/ReciprocalSimple.res (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.res create mode 100644 mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.res rename mlir-assigner/tests/Ops/{ => Onnx}/Round/RoundSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Round/RoundSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Round/RoundSimple.res (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Sign/SignSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Sign/SignSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Sign/SignSimple.res (100%) create mode 100644 mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.res create mode 100644 mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.json create mode 100644 mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.onnx create mode 100644 mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.res rename mlir-assigner/tests/Ops/{ => Onnx}/Sum/SumSimple.json (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Sum/SumSimple.onnx (100%) rename mlir-assigner/tests/Ops/{ => Onnx}/Sum/SumSimple.res (100%) delete mode 100644 mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Relu/ReLuMnist12.json delete mode 100644 mlir-assigner/tests/Ops/Relu/ReLuMnist12.mlir delete mode 100644 mlir-assigner/tests/Ops/Relu/ReLuMnist12.res delete mode 100644 mlir-assigner/tests/Ops/Relu/ReluSimple.json delete mode 100644 mlir-assigner/tests/Ops/Relu/ReluSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Relu/ReluSimple.res delete mode 100644 mlir-assigner/tests/Ops/Round/RoundSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Sign/SignSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.json delete mode 100644 mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.mlir delete mode 100644 mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.res delete mode 100644 mlir-assigner/tests/Ops/Sub/SubSimple.json delete mode 100644 mlir-assigner/tests/Ops/Sub/SubSimple.mlir delete mode 100644 mlir-assigner/tests/Ops/Sub/SubSimple.res delete mode 100644 mlir-assigner/tests/Ops/Sum/SumSimple.mlir diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt index 286c39c..74f2bc6 100644 --- a/libs/CMakeLists.txt +++ b/libs/CMakeLists.txt @@ -1,5 +1,5 @@ add_subdirectory(crypto3) add_subdirectory(blueprint) set(ONNX_MLIR_ENABLE_MHLO OFF) -add_subdirectory(onnx-mlir) add_subdirectory(zk-ml-dialect) +add_subdirectory(onnx-mlir) diff --git a/libs/onnx-mlir b/libs/onnx-mlir index d07a0f8..c213dff 160000 --- a/libs/onnx-mlir +++ b/libs/onnx-mlir @@ -1 +1 @@ -Subproject commit d07a0f8946e052c0bb49ec249195703b407b82c7 +Subproject commit c213dff99b5832bae1528e6413f5b397fa1660f9 diff --git a/mlir-assigner/include/mlir-assigner/parser/evaluator.hpp b/mlir-assigner/include/mlir-assigner/parser/evaluator.hpp index ac8e41f..818afe3 100644 --- a/mlir-assigner/include/mlir-assigner/parser/evaluator.hpp +++ b/mlir-assigner/include/mlir-assigner/parser/evaluator.hpp @@ -180,7 +180,7 @@ namespace zk_ml_toolchain { bool PrintCircuitOutput; nil::blueprint::logger &logger; - void doAffineFor(AffineForOp &op, int64_t from, int64_t to, int64_t step) { + void doAffineFor(affine::AffineForOp &op, int64_t from, int64_t to, int64_t step) { assert(from < to); assert(step); // atm handle only simple loops with one region,block and argument @@ -347,7 +347,7 @@ namespace zk_ml_toolchain { // Print the operation attributes std::string opName = op->getName().getIdentifier().str(); logger.debug("visiting %s", opName); - if (AffineForOp operation = llvm::dyn_cast(op)) { + if (affine::AffineForOp operation = llvm::dyn_cast(op)) { logger.debug("visiting affine for!"); assert(op->getAttrs().size() == 3); AffineMap fromMap = operation.getLowerBoundMap(); @@ -364,7 +364,7 @@ namespace zk_ml_toolchain { // llvm::outs() << "starting for with: " << from << "->" << to << " (step) // " << step << "\n"; doAffineFor(operation, from, to, step); - } else if (AffineLoadOp operation = llvm::dyn_cast(op)) { + } else if (affine::AffineLoadOp operation = llvm::dyn_cast(op)) { auto memref = frames.back().memrefs.find(mlir::hash_value(operation.getMemref())); assert(memref != frames.back().memrefs.end()); @@ -380,7 +380,7 @@ namespace zk_ml_toolchain { } auto value = memref->second.get(indicesV); frames.back().locals[mlir::hash_value(operation.getResult())] = value; - } else if (AffineStoreOp operation = llvm::dyn_cast(op)) { + } else if (affine::AffineStoreOp operation = llvm::dyn_cast(op)) { // affine.store auto memRefHash = mlir::hash_value(operation.getMemref()); logger.debug("looking for MemRef %x", size_t(memRefHash)); @@ -402,7 +402,7 @@ namespace zk_ml_toolchain { // put the element from the memref using index vector memref->second.put(indicesV, value->second); - } else if (AffineYieldOp operation = llvm::dyn_cast(op)) { + } else if (affine::AffineYieldOp operation = llvm::dyn_cast(op)) { // Affine Yields are Noops for us } else if (opName == "affine.if") { logger.debug("visiting affine if!"); @@ -716,7 +716,7 @@ namespace zk_ml_toolchain { return; } - if (llvm::isa(dial)) { + if (llvm::isa(dial)) { handleAffineOperation(op); return; } diff --git a/mlir-assigner/include/mlir-assigner/parser/parser.hpp b/mlir-assigner/include/mlir-assigner/parser/parser.hpp index e283d2d..d8c35c8 100644 --- a/mlir-assigner/include/mlir-assigner/parser/parser.hpp +++ b/mlir-assigner/include/mlir-assigner/parser/parser.hpp @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -64,7 +65,8 @@ namespace nil { log.set_level(log_level); detail::PolicyManager::set_policy(kind); - onnx_mlir::registerDialects(context); + // onnx_mlir::registerDialects(context); + onnx_mlir::loadDialects(context); context.getOrLoadDialect(); assignment_ptr = std::make_shared>(); diff --git a/mlir-assigner/tests/Models/BasicMnist/BasicMnist.mlir b/mlir-assigner/tests/Models/BasicMnist/BasicMnist.mlir deleted file mode 100644 index b40ade4..0000000 --- a/mlir-assigner/tests/Models/BasicMnist/BasicMnist.mlir +++ /dev/null @@ -1,122 +0,0 @@ -#map = affine_map<(d0) -> (0, d0 * 2)> -#map1 = affine_map<(d0)[s0, s1, s2, s3, s4] -> (s0 - ((s2 ceildiv s4) * s4 - s2), -(d0 * s3 - s2) + s0, d0 * s3 + (s1 - 1) * s4 - s2 - ((s2 ceildiv s4) * s4 - s2) + 1, d0 * s3 + (s1 - 1) * s4 - s2 - (d0 * s3 - s2) + 1)> -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "basic_mnist.0.mlir"} { - func.func @main_graph(%arg0: memref<1x1x28x28xf32>) -> memref<1x10xf32> attributes {input_names = ["image"], llvm.emit_c_interface, output_names = ["prediction"]} { - %cst = arith.constant 0.000000e+00 : f32 - %cst_0 = arith.constant 0xFF800000 : f32 - %c28 = arith.constant 28 : index - %c1 = arith.constant 1 : index - %c0 = arith.constant 0 : index - %c2 = arith.constant 2 : index - %0 = "krnl.global"() {name = "constant_1", shape = [128, 196], value = dense<"0x4D74043D7D6E13BDB90996BCDBECEB3C433E93BD4B221D3D957B9BBCEECC023D3C76BC3B12324DBC6418823CE83082BADD1DB13CF34F04BD06831EBC90B130BC270AC33B31DB06BC3C51523D430AB43BAD6C67BDAE918FBD70AC1BBD7F312DBD2C20E5BC42EAD1BB3F9C063DD9AA0C3D782698BDB0691F3D3D8C683C3FDF363D82F42A3D31B017BDFC913CBD668107BD67D9A23DC9686FBC9545353DF55E7A3C1AD4B23DC80F05BDB5FF473DA320F4BAFA1D23BD2511863D1074C8BB7A3BD33B145CBCBD93FA06BE96E3FABDBED917BD24B6533DB6A3CA3DB0152C3E90C9843D2C61F8BB85DD2DBD726C4A3D87B8A03D3C11B4BBB6F0993D09BB15BCABD38CBDDE2D81BD2B91013DA264193D3EC7013ECC33BC3DCA6D09BD0734123DD7F70FBC5F65483D48648E3D791A063E8EB2213E73B14C3EBD84743DEC347DBCDAA7B23C57B2B5BDE78A1BBDBFCC703DC172C9BB2C471D3D00A525BD17E418BD06B1063E4DB49C3D6DDE373E6BB1EA3D5CC898BD7FEF0F3D5A07B4BC0751E7BDD9D11EBD1E5AD33CB078163C32CF0DBDEBCFD0BC9825483D10B182BC1D99433D844BDE3C5D52FFBD577DE7BD27EBF03C342D3F3C8934D13DB0F6963DEA499D3C8D80273D9425813D05946DBD6D30FABC8476CB3BFACD7E3BC62C1DBCEDECD2BD12200CBEA297A4BD6F75693D90E0133EFE0489BC58D28F3B61E966BD066D92BD8F96F7BC94413F3CAD6D9A3DD899E7BCC6193A3DDE0D613D2B9902BDB0999B3B3DA18E3D5998273D4FAF04BC16CAC4BD64078EBD7F4318BD13FB07BD61BFB7BD5A81963BBB72AA3C9B67183DB217823D8C541CBCA426543D6D7A323DD65E3DBD4C12183DD85914BD02A309BCCA3E93BD0E4681BD1C01C8BD2C99C8BD2081CD3A715B033CEF67663DE1E1183E8482E03DD4BA993D6E3826BD765F59BC2DD637BDC411AABCD9737BBD637018BDB2C111BDE43B8A3C03D1A33CC630083D4E82F03DD870213EDF87D93DEBB5863B57487CBD78DE153D9E39D4BCC6CC27BC6A2C87BD2F2D98BCD35453BD3FAD833D288879BD02D76DBDF7CDADBC9C5936BD1C06863CDA9049BD9A583BBD0230ED395670413D3F1960BDC062D33C69421C3DE87D7E3DE27A6CBD81431B3CF8917ABDCADD543DA58D10BDCC87103D62FDB7BB19F359BCBF2424BCA847903BDE6ED43C6B8D733B4CD7683CF50593BDF5D3343D345F483DC8261C3D12B42F3D3FF552BD22D931BD53E8023D323DA0BDB6F7633D069682BDB3BE6DBD96A9DE3CF3376CBD7B0595BC1981193D59A84F3C4C05B43C5FF202BDFA45C5BD78DE55BCD94DBFBDE77E93BD9E9815BD94BDA0BDDDC2243D1573183DFB6C69BDC6DF37BDE031D0BAB7F8C43C3A70063DC62F0C3DB722DA3D43B7013D90899DBCDD5425BDB53623BB89CFC23CD7BC09BD7ED17FBB82D9563D545C503D14ECD4BB94FDA33DDF54DE3D794D0A3E26A3243EDECB423EF779E23DF26F013B4A0D8B3D6C9B463AD88E59BDAD350C3D450BE6BCB10ADA3D5CE531BBD223AB3D6196183D1EAB0E3E0906863E4F6C1B3DA55E033D7B6B873C1D41273DD1F815BD48A3C3BA2AEDA8BCDB5FE53CDFA39E3D2D17FC3C6E5629BCBC5F25BEA442F4BD9672163E637F073D0A736A3D91FF0F3DEFD986BD133FD13B0B0F073DE0D175BBABB722BDEB608EBD21B698BDF34F00BE598C5FBE2FA8B8BD4E731D3D1DFA033D614577BB902AF3BCE3ECA1BDCEC5D8BD8110563D026DC53B6999903DA6C23ABDD2DD3BBDDA81CDBD0760B4BD983C0B3DE01BABBDC1443DBC274C4A3DF69C0D3DAE4791BCFB2049BDCB1261BCC278A7BCB8F253BC9362B73CF94AD5BCA41802BDFE4C43BC1FB0AEBCC8F236BDE42D70BB97A82D3D6735833D33CABCBDD14315BD4B2EF3BC1A4B43BD720C11BD683D983C66807D3CD0C545BD04B498BDC46259BD0ECF383D563D3BBDA9C632BD4F1C84BD76D8B2BD1A86BEBD5BD44EBD3126133D5CB7F93BDA94BEBC06441ABC5AF7D93CB8B2423DAC42C03D96948E3D8F217C3DC6B714BD7B09BEBD7C0CC8BDA2BEE73CE86498BCA200B13CABDA3DBB998C64BDF608683B0820703DB5D3CD3B72A518BDE417A43D844F863DB457FC3A943CFF3CC739453C5A580BBDDC81663D3827E63C52DD9D3AF5AF84BCC05238BD6AD7C43DF068023D65AD0B3C4B47053E11CAD13DDEC76F3D3894FABBD2E0E6BC509F8F3B9DB4423D2E707ABB44E443BDEC17693DB3804ABC0FBA2E3DA1CAA03BCE31583DCD8BDA3C515554BDDB2C183DD8F449BC82AE91BDC9B6EDBC69D0A0BDBC2151BD4BA984BDCC7A123D6D5CE0BC41FDB8BCCB5D0B3D6909D63CA87F25BD677E293DBB968B3DAE00F0BC3FD7793D63BF64BD9C842BBDB34495BDF278513DEE95963C214B8D3D42452FBB94E5943CC13292BD370E9CBD9C6E3A3DE56C1C3D500CBE3CED3F06BCAEC95D3CC795C23BF203443C602B85BDD8AF743D58096D3D69D9C03DF995323DCBE8DDBDA1F305BC5725A1BDF662563D2E59163C2D64A13D63272EBB5EAF093D4E9B48BDB9208ABD0DBC2C3D0FF48A3D00FC293D55617DBDDBD19F3CE2B9BDBA11B00CBC46B464BCDB6C513DE286ADBC07158E3DB72E8EBDA2B11D3DE2149B3C7B6822BCB9E4AB3CBCFD9EBDAC88E23CD7DDD53DD7D796BCAD738F3D00828DBCE09CF43CE2DEC93C532E673D02EA383DFA7FA8BDEA29623C50521E3D08ABBB3BB5F9DE3D71A40A3EA68FD03D21AA7F3C91EDDD3D2B6D21BDC2C2B7BDA1EE803D084CE43C0AAE8E3CF433463C4D3C19BD42B4423D2E9141BCFE02E63D1FC1E23D500682BC2D3FD6BDFB2D25BD3BC6103E54F1943D5B28AF3C42E19BBDE00070BD0773DBBC499651BDE67612BD53E423BDDA40013DAB7C8BBD604803BED68BF9BCCCCFABBBD620523EBA93313E967212BD484BF9BD92A09EBDE88457BD8D10933CE0CA81BDA5BD66BD4C81ABBC34637ABD01A6FABDDB119BBDEFF0E63D36C7AC3D97E1A0BC02FCB1BD9D5B85BD30979BB997BE913CDC3BC83CFF2906BC38519FBD6336C03CC31F513DB5E6E63B304CFB3DB3E2C73DD5BA40BD6A3B77BD169CBFBDBD01ABBDC9CB913C771A85BDFED36C3D958933BD3AE03AB92FAE19BCA62E923C6675083E8E15513CE88349BB66236CBCB436353D7F4C94BD053388BDC35F77BDB4893ABD4DA30EBDE6C784BC943AB7BC3ECF1E3DE978163D30EA233CDCF13E3C784A6F3C8F3106BDF6EF943C74C61EBD3C7A95BD3FF888BD426D0FBD549CF4BCA2B5D6BBF835F6BC20F4BE3B5DDB45BD22FEA43C8F7A93BCD9C579BD0AE5C43C66AEF9BB475C81BDDA655CBD22CBFB3C3DA5C03C1F233F3D3F1E6FBC12EC263D9CC7D73CCD014F3C5C99D6BC51B3743DD3C1E93BEDE3E5BC63EE30BC25D2793D7B341F3DB1ED6BBCAD86793D29A5B63C536942BDCFE599BDBE69053D7404703DF97C31BD51B8D73CE4DFC83B3F5EEABC679C1EBDF6C8363BA219883B433C203DAB9A8B3C1141BB3C756F383DF558953C3AE0F93C38057EBCD53A6D3D80C5083D4C13803DDD3CA43DE39FADBC02E14C3D58DD8FBC1333653D557B403D9C9819BDA03584BBECF83639E867CF3B4B2A0A3D5E92603D9CB8ADBC811FA9BDF41FADBCF1D6063DDB2E72BB86F1813D9C8D603D147F163D4F91A23CF8D62FBDE218B83DA4824ABC5E3A993D294B0B3C4210153DA4967BBD5F9B49BD3198AABCC458F7BC9CB3C4BCB956903D2BB973BCABD3433C8B6BAEBD411B613CA1AEBEBC691C70BDC1ECC53BDB861DBDB8AD753D3825A7BD53FA9DBDA6F9B8BD2EE88E3CDFA555BCC32F9ABDE6C7633B38E576BDBD64AABD2239D8BD77DDE4BDD58C1BBD8D308CBD14D94F3D050F7F3D3A0253BDF5FAAEBD446CDDBC084796BD6DB74E3C9AB322BDF89EA5BD060E01BE00E9223AB3E5D7BC70EDD9BC7C42943C31E954BDAB20A6BD3C59283DC12545BDA9173B3D175A493DB26C61BD9A4D5EBDBC7AD9BCA7ECC23C3AF378BCCBD0C53A36F7083EDFD4003E2A3B3A3DCBDF84BD6837953B48D7243B9E4ABD3DCF2D13BD72E44CBD0F3690BC463B5C3C9D235A3D1E76503C9B9AB5BC181AF13D6564B53D3E24D5B926768DBD731B5C3DBA48AA3D3340783DC6F602BDABF58EBB9C5320BDFD22C43D967F0D3EDB7C943DCE99893C5C9CAE3DC00E473D52FA083DD44FB4BC0EA55B3DA8377E3CB59441BDC02D6ABDAB5BAD3C2C8AA73C3B965ABD44B89B3DBC10CA3D9DDAA43D4688D83C3EBB14BD898AFA3CB147A73DD0D4873D316F1DBD4A07D2BCA793433DA9BF393DAB56113DE68F25BD44DCF2BC2E8C77BDB75B30BD8DA58E3D7E9925BD75260DBD0E9178BCD4887ABD955B503BDC55AFBCCF6D9F3C5FE882BDFBD0443AFD2397BD932B103DAFB0723D91F511BDBCA7403B9E972BBD7AF870BD30D24BBD528E36BDD1468E3B77AE8DBC494B86BBD3B863BDAD533BBD7E6680BDB3C85CBDC9C36A3D113BB43C332090BDE1B34BBC89DBBE3B980C153D4788833D44E2843C05954A3D2D40D7BC133351BBE84B34BDDA547F3CEB5D743DC121BB3CFFAFD33C83218CBD18F21ABDB86630BCE23C283C2778F0BD1C4388BDB1F3103B9B572DBD2B8ED33C41C9B8BBF86938BC1800613D4CA09A3DF413BC3D44FDE63D5FCDB93DF9A5F23D19C1953DBE257ABD812FEC3C9784873C79D4F0BCE73691BC711F6EBCFFB5DBBC5B38CA3C6D52883D8467CA3D65212A3D0DA304BE01610ABDA68E93BB0A00D13DCB5BFE3C3FA9603D509C843DC4AAF73C2B69FBBC7483A2BC493F123D431D483D803121BD9F58C9BD4E3D0ABE089636BD9620143E3747093DC555B43DCD03153DF105AE3BEEA31ABDE58BD03C00603FBDBD8195BDA4D277BD528C0FBDA4536D3D6BE941BD6082103C51A8CE3DCE6FC33AA9A2073DEBAE0E3C097953BDF6F06A3CA0003D3D648F98BD8643EABC7EFBB43A59FFCE3D7ABA153E72B58FBC0052ECBC784B013DBDCDCDBDC55A0BBE05BA3CBDBD723DBD3446AB3CF34A6D3DEEA57D3D0FF054BDF95ACF3C884EC73D447F963DE187553D23055F3DAEF7843D7CE88E3CA3842EBC29A338BD366518BDC8AF0CBD9FCA933D55955D3CA18A163B916803BE05BE8ABD0D0F9ABCA9DEB9BCD45D963DCFAA82BD8D9B38BC47F156BB5E8B87BD43463F3D30CFC3BC9FD95F3DB80DE33D97A7053E51F4F1BB9F36E2BC3A62423BC7D1AFBC105DABBB3D068EBC25A70E3DBF03273DD40688BD4BE0533DBE6C2B3C01445CBD68FF983DADB6F73D933D1E3DD5286ABCABA8DABD560204BEB61F4DBBD635963D14BF053C99B4683D01C5843C7DEE58BC1DE4B2B993CE0C3D005752BDA9865D3DA48D773DF794553D6D5E083E9BE4CA3D7CAF1A3D4C4FC23D9D83203DD996123D637C653DBDB224BD07C70B3BDED78D3D246C97BDFD3149BDAC2D613D3C77943D596D993DF4EF7A3D46F8573D1D8730BDDEE476BDCBCE93BD011C873D796B643D0B14E13CFF879BBC6D4D5F3DBE0F0BBDA2EA993C7EAC2CBDFF1597BDFE7164BDA83449BD59FCBCBDEC864A3C4437BFBCD6DF023D1106373DD19E9FBC9731D93CEA47C93BA031233D5CE95DBDFF2B75BC383B03BD3434603D036792BDC27C47BDD59848BAAC33623D92A9243D068999BDBCFD6EBD0C107B3D6FF6EF3AB9A090BD27710CBDC89F833CC82232B997030ABD70D51DBDBB1365BD71AE2BBD56E53FBB6DCE9A3C9CF42FBD83C4A4BC180D81BD9187453D7FFD8C3D933F803DB85D0C3DD083ED3C2619663D3ED24B3D42779EBD3C4DE3BC3836A1BD086AACBD1FA31FBC0319FCBC302C5DBD3BCF1D3C291DBBBB9523133BB0ABC4BCC52B43BD467D85BCE28979BD4684E8BC57B7483DF4EC603CA2AC4E3D8411A6BCFFD384BD4125F73BC12D13BD000D053CD8E28ABD834A5B3D67B587BDAF4B683D43413C3D0A359A3D7C63893D703C1B3D8AF03C3DF8AAB83B9DE815BD057F94BD0D09653D6B27BCBC5DAB50BC8E3119BDAADA5CBC91610BBD4B7E85BDD8F1553D4E57DD3A169B6CBCB6C786BDC8D72A3BBDE699BDF41097BC0F97E5BCF697A1BD9D4BAEBD9C91B13CDEF0093EAB14F43D02A671BDB58C95BCD917CFBD8AA301BE643364BDF6EF7B3D1AB8DABC512133BBD657653DE970FB3BAD788D3D6112A03D498EED3DA121393D5A9553BDF4358CBD7900F1BC758B363DF472063D187A7C3CDC207EBD87973DBD115A9D3DA16A81BC8506FEBDBE28D0BDCEEE02BD1DD5303D9EB2D33C65988E3C99F2D7BC17FEFD3C5234BDBCC076343DE924DD3C8D8D6F3DFA87F93D2CB2AD3DF33FACBD43CF43BD26545DBDA7B4613DB668BE3C9756B83D9B46D5BB8BCEDEBC4BC621BCAB3B923B9B18353DEEFD8C3D7015C63DD0F6A73D117CF53BFF2B5DBCCE1540BDC48D963AD96E40BD79B9213D70629D3D8EF8A43D1E749BBD3B6F4F3D1C1559BD6115A6BB090DA43D5C24283D98F28BBCE5CA1C3D1AE6B7BD513E413DC43D943D833B9E3C28D30B3D280A98BC814B60BDB2C624BD43E552BC5A7B88BDBC4384BDA6252ABB14E65ABDF472DCBCF6C4C13C0C1ABFBC93AE603D49871ABDA9AA4FBD7717E7BCED2788BDD133EB3CE6145A3DD0414ABD0F1F18BDE18C573D86DC88BD9359433BCD939ABDAD5AB5BD3CCBD6BC529583BDF76DD53CF9B4F9BCD16CF3BB260A3ABD291E8E3CB4E75D3DB140BABC9AC361BDEE5FA5BD67A86F3D4004AC3C996B993C78B19D390BAFC73C9E3E653C1356C03C4ACF053D5AD5F5BA7AD54A3DBB01043D0BD65EBCFD4D23BDB122FD3B066CAA3D0487AC3D8A29723A6B330A3BE7F1153D6F54D53C3BB47E3DAE4BC43C3429303C3799933BA69BA2BDBB0C16BD6AFB96BBE1ED5FBDBF5F98BDA15CF2BCB71DB3BDAD6B14BE3AE480BDAD4C5ABB5E3D683A4E63403DB1A326BDD1C6A23C898884BDBCF9A53A6A2D03BC8C194E3DD5E1B43D146A0F3D8CF9DCBC6EC7993CB48F3ABC92ACF8BCDA6B9EBD3284A73C719C163DC28B453DA91A0DBD67C9983DC50F003D24573E3D68301D3D6132883D269D473DA39AA53D583533BD680C5E3D62BD81BDE3E780BD674583BD422B193DEAE37A3DE8DE10BDDD41C0BBD739FF3D8066103D6083A73DE35FB93C884F003E821CC13D9A0A2A3DDDED433C60A7A73C4E32E53B07161E3C548C29BB1D5E85BCCAC8A0BB5C53B23DC498A7BD9FF4CABDEA406E3D86DB573DA44E9E3D379A463D28972E3CAB55F43C6B48D03C223756BD897C24BDEEEC75BD970766BD9E332C3D6B5A1BBEABB71EBEB2E38DBAD64B1D3D94A5933DF773F53DEF0B223DD7A6063D04165B3A9A6057BC59EEBD3B4AEBE93C4E17643C14203E3D38F256BD8B0E50BDAD3E343D27D60BBDDBAE723D463DEC3D443E1CBD774B2EBD4A0797BCDCD4463C344ED63C4809DABB556F5C3CEB5F79BD512E52BC584F1FBDEAED313D8CDA0ABCCEC9DFBC78A85BBA3760253CFDE4FEBC1D6644BC003940BC192E083D7EDE94BC6A9AB4BD8B078FBDB278B8BBE7686C3CE27BBA3DEF10B7BCCE95FC3C7953C7BDF185DFBD6BE0C0BC1B0B6EBD727906BDD5663CBBA7BD88BDF7CB633D813506BDD7FA513DADD9C3BCE13C99BD0E23DABD32FF45BD8626A9BD4DF0113DFB9F95BDCC2B00BD346952BD670868BDF0EEB9BC60FF653D2195933D0294443D8D90663D8CEBA1BBB658F7BC6E56CABC76C4523D7106AEBC31A293BD5A66343D5B26B03B59D8083A0162023CB2A7833D3B937E3BCD83CF3D3E53EE3DC0A7263D28E4B63D70036C3DE4ED813D25EADDBC8D365FBD96C51DBD3F417DBD51AB30BC87DB633D1FD3633D6595243D8365E8BB1B6E4CBCBEAF0A3DA624E63C729FA3BC1A87FEBCEA06763C79B680BC9FDF81BD45D13FBDA62B373DB8703D3D8B2036BDD17329BD5F2C8FBD06AF73BD1D7E153D31E1B2BD7D37E13C24169ABD91F663BD4E7C08BD996D08BC5C6FCBBCD2133FBD77EC1ABD26C169BDAF6AAABDD9D27FBD40B68C3D287FC2BB7A7A65BCF550AF3DEA5A643DC732B03DBC7B7EBD3B77A5BD61C882BD9D3858BDFB038EBC691255BBFD69983CB79E77BDE058C43C648ACABDED646BBC7603743D189A0D3DB4989C3D4BF1513DB9B83E3D62EDB33AF8C32A3D7BCD20BCAA3298BD1FB2C9BCD5CB38BDF9AC7B3CAD7C72BD19273B3DFDBB9CBCE08FE93CA26712BD2742023EEC80A73CC7EDD53C3F19AFBD707AE8BDA09F8ABC0E3DC8BD07C00E3DDE79EC3CBBB54B3C3910DB3CE041D7BB7BCFA7BD51D7E7BD5C8FA3BCD2D6D8BBB1F8B63CF483A6BD960462BDE6CF83BDBE13603D5F1F1E3EA57D703E4990103E4AE74DBD18C788BD2021F8BD955BACBD2B764FBDFCAC73BDA48026BD9D6D9DBC8739123D92D7DABBC1C6EF3D73918C3D90BB773DF0DC80BD568338BD2A2F3B3D5FF11C3C21F9483D2C4BCC3C9FF6B7BDA4E88CBC66588EBC3D0D49BD02ECB4BD0F26C1BD78FF85BD55D64FBDD95B143D30B3383CD490C83DB7B0A53DFACF71BC58D874BD715DAFBDBDB27ABCA1F41BBCF634CF3B95B0EDBCC830B1BD244926BEE66BDDBD018AA43CCD07263DC253C13D7C0B2C3DE66693BC795EB1BD4D14EFBB4D297FBD2E0D653D32B0BE3DAD626F3C16D9653DD5B2903D2B08873AE1D5233CA1DE5C3D9FABC53C3C50A4BD991656BD9DD580BDA1760A3DD6517ABCAA7D2D3D0123943DEE8EE1BC7AA8493DA753163DE471903CC6ABC73C5F08503DCD76443D0828B33A99824CBCE01CCA3C8BB88A3C32E3843C0F31123C810A6FBDCBBE11BDFF135DBD3FBC833DD95B613AAAB4E2BB8F33B03CE540C23C91FEA0BD7812D93C5F5EF6BCC74F083B397B6DBD7282C5BCB1C7E8BA478CC43C54A21EBC4BE5BDBDDDECC0BD713DA8BDE4B177BD86D6A0BCA109C2BD33779DBC4AA32FBC39D73EBD75DE413D8A1CE5BCDBEA9DBD7FED53BD0978DFBBBB607DBD02B5FF3B1173773D1348B1BB7C70DCBC697E6D3DDBA9323DB0861D3D73326BBB1324BCBBD03683BD330105BB1427763D867815BCE17797BD5B5E303D4037893D85ED563D84E9ACBC5091D4BB157C003B976115BD326D9FBCE7C9493DCBF9F6BA1E64643DC61F59BDC202BBBC495A0B3C776B583C3D050D3EB69B053EA722A73CCFF1873D057B493DF6EE6BBD3CDA59BC49437F3DD59F5CBDA2A179BC77857DBD0BCF883C5F809DBCCAB68E3A9876773D89FB6E3D7848EA3AF9AE6A3D17E4633CAF6A36BCCBD85A3C95A935BD49E6FABC99E5333D53755BBC10F341BDEB5E53BCEA32713CCD011CBC2374F13D150F093E3477D43C338A2D3DDEC738BD584FF23C99CA9CBD3461853D11E83EBD1E4B00BC3C1DFE39C87CEBBA5A1F3FBD3C5369BDC3EE8CBCC815BE3D51A3D53D24F2893DD90457BDC054AC3C80456A3DE68BDFBCE42DA53C6D6900BDCC71EF3C566AB0BC23C0EFBDB7B123BEE1B614BE14E0133CD7549B3DC31C3E3D8670B53C35FC49BAF01F32BD8AFE4BBC78A0563D10CEEE3D5DB792BCED5D4A3C1A03F9BD9D7E0BBE593056BD882144BCEBAE7F3D3761B73D5B1E65BC182D8EBC5DEAFEBC03DC4EBC4C18933DC623FE3D0FF727BDEADAC73C5FF7E5BD1445DABDB58D983D190BC73C1DC09FBC5485C63CC6599DBC896B96BDF0723DBD1DFB41BD5A63843C844722BC3911B2BC511DBB3DAD651CBDD56CAF3C3749C13D2F453DBC82E483BDA806A23B782D683DBDA386BC7CE756BC0BF6BE3C84A88D3CCBF4443D6792E13D053C083E9448A03C9FF3953C40A9913DB709703CD17A30BA5AAE3B3D1FF8153DDE96A33C0A19733D98B88EBD0DBA863C98187B3D9129483DE35F283D20776B3D4806F6BC46EAFBBA06C75A3D12344CBD8E422EBD23FFCF3C2175DDBC7377C23A8550A2BD044F243DA7E979BD3D84393CCDB17EBD4DD78EBDC2AA143D9E178DBDFD6334BD4EB6E3BC4FB43A3D47A95C3CF4E0D43CC40E22BD2A3509BDCE8C373D34CEC83C0C6CC33C84425CBDF8A08EBDF304A83B08D76FBD9C261C3D38683D3D0EE91DBDE47861BD7453763D4CBC38BDD8E982BDEAF470BD7223D63BD54DFD3B09F1273D57FE593DBD40C63CACA1A93B7B6F6A3D17FD13BD6A509BBCC01B5B3DA83AFEBC6837003D9C65073C192D963CE52B8DBCC92E50BDE7A4A33D9C3ED53D6806AEBCE05688B906E0043CA643FE3C177455BC1C8511BD6A4B473DE0832FBD06606A3D889F34BC8BB82A3D025C2C3DB9B0A33CED677D3D0E60663C9643883DD4E0E03C80D554BD9BE4463B41D690BD4D6F003DCB59B6BC825E283CEE9608BDE2E93BBC0588BBBC7D7E303D473B933DCD87363DBD87DA3D4CE227BD36660BBD5A0A18BDB62F143D9A5B6E3C5E0D40BD982CB8B9CBD948BD9C4AC43C0E261C3DDAD7293DB01B153C78EEF43D63A4A93D466046BD4CACB33C4FDB43BD22480CBDB1136E3DF45E97BD0A3ABCBC6AEECF3C2832D63C93BEABBCC0D185BD78886FBDCF0A66BDBC0FF2BB86C2EABB61D8BC3CD1B28A3DBAE380BD07862ABD421A7EBD0D4B073D2EE79D3C6300F5BDE575453B000532BAAF2D87BD4283A83D8FDF5C3D55412A3D671C8D3D0BB935BDE2B2C7BC283C0F3DA07B94BD74149DBDA08596BCA4AA06BDC92236BC6078F9BC7EA9313E6B3D423D357CA2BB5144A0BDFE571EBED51D8DBD9F7537BD4CF12F3DC08B7D3DECE2E53CECBFA23D69D1FBBCEE68253D3805A43D13153D3D0D786F3D6C9A52BCB8A0ACBCE93413BE536496BDDF960BBDAB2BBEBBACE03739A5CD53BDFEA9E83CF5FBF33DC5AA4F3D69EB603D8506EC3CD8FB153D854C083C48A8E23D572E4B3DFB179F3D3988BA3D4207743DDBB666BDF5D2BD3C1F52D4BCDACEF03DB856243D047C443D42BBC7BC7BBACA3D518ACF3D4C45DC3DC2EF383BD003D43D9CC8A5BCEFDA94BD4AD1213D26776E3C52BBAABC92B625BD3FD8913CEF392ABD143078BDF39115BD2CA6B3BD00417F3D3997BBBCB81B05BA763B88BD3BEE8ABCE9F5EDBC836AFD3CC0D40FBD92E43D3C0476A63C4EC78ABB19F832BDA7A0BDBDA8585BBD5D5D11BC08760DBD59AA2F3D901FDEBCF85B1BBC51BB83BB58BB8CBD9A434F3D606721BD6BBC74BDB961E53B8DD42FBD65488B3C7CE70BBDF62F04BBEF768FBC786F3E3DD430453D6CB2823DA8D7373CF159483D695E62BD728736BDE665293D3F919B3CFEDFBC3C0CAB343D903E463DE8F6163DABF5BCBC87FD9DBC9FB2963CA8857E3DAC0007BBF3BC92BC56AB2F3DCECB493D2477A3BBAB1FD2BC2E9292BD4FB27CBA9400753CC2DD55BD8CA375BDF2B3A5BD67FA5D3D7D10903DC7A3973D9C308A3DCDE94C3A056EFB3CB6A9A33CAAD20BBD734181BD4BDAAC3B9ECD0ABD1838BE3C356EB7BC777DC9BCEE1A55BB02A4E33B39643B3D98843C3DD608A9BC4132E73C57433ABDE44F663D17AA6B3D57BC103E3B6B1B3EE0465C3CF03B8B3D763450BDC1D82D3CBD47CDBCCD7B4A3BB8736ABD24B41E3BF6B8C2BD1037CC3A197481BBB16007BBD168593DAC4FA9BD855FDFBD50B890BD600564BDBCC724BDF467853CE3BA1F3B6AA3523D4B8171BCF732FCBCA1781E3D82CBF23BF60086BD5AB08FBD346457BD4BF4DEBDC187F7BD8055F3BDFF1DAEBD42168BBC2934E53CF2279CBD717D9DBDB90508BD90479DBC669EE83D5C051F3E098D4B3E290E113DB0E2063C8A8C7A3D4D98C7BD56F892BA3AC5173D4525D23C28DD973CC5ECA8BD6BA49BBD6BA608BDBA71193ED5925F3D233506BCEE42983D0AEF943DD4F578BD963B96BDE067133D51BFA43C434450BD60C9953DF5E8A1BD8BBDB8BD8CC60CBE6CAD20BD9024C9BD3FF694BD650C39BD419D163D269B143C2E25583D097A5BBD0A2C8B3DC5AF503DB7B6F73B53332E3D5C5B23BEF1B981BE180589BEC7F98ABE6180F9BC6380DE3BD5D53DBCE548733DF09F743C71A356BD8D018BBC374A7CBCC04D7F3D6740CA3D89D6763DC4A8A2BDFA9A54BDA8E7CEBCE026CDBC6C58533DC4A2EABC4804963C64F792BD9DD01E3D4B6337BD311BD73AF4D931BD1B2EC33D823A693D30860C3E07188E3D0115843DA51A7E3C15C7683CA3309B3C9AFFC9BBCDF357BC0F4BAB3CE927B7BC21A4D2BC201B76BD3C4634BD06CD293DDB36DF3D60F1F33D9875AA3D9A20923C796525BD14D89FBD4EF4893DAAC634BDFCB80A3B5EE5003D0F78B13C4FAFE2BC789D6ABD2C1F833DB855293C8C7CA03DB7A4203D3306AC3C7755153C874E4BBCC9E918BD376D3E3CFF6F933D35213D3DFC7A823D8EC4863D28D05F3D803B27BD2C591EBDFB42813A8862FFBCAACF9DBCC6B6D5BCE9447E3DF49985BBE03E8D3DE5B367BD16B892BDD3F5133C925B5D3CFB50F2BC960807BD09A8053DDF90AE3CC5E036BCECCEE13C71D93ABD66313F3D20B10EBD997FBCBC0E59E73C4F4F2F3D19C806BBA83C6FBD1B2995BCBE0E63BD99615DBD101086BAD452703D44A6473D1D550D3C6C37CE3ACF3F3FBCA0B35BBDA8B3EA3C91C2203D3556583D1097CCB802D18DBD12A6B9BDDFE1D5BCA5EAB1BD15F6C13C949879BD3C4198BD24B871BD88FB5E3D7FE6483D21EE0E3CAC13A0BBD721773DCE0D0C3D0C73753B69B160BD53E9193D6DDFBD3DF0BF49BD62C6C73CF65FA8BD1563C2BC22F0BFBCA032DB3BECECE53C1B4537BD78CA013D15AA593C83BD13BC8730B7BB9B751D3E704CDA3CD506283DC282F33D604875BD3ADB243DD0B0653D89AE083D89134FBC725625BDFA21B13CB0E2883D92F89C3B598F673CD0062839D49CACBD4AA9DC3D1E8D3D3DA156B4BD7921E9BD786F753D95091B3E19F5EC3D3C080BBC85377DBC3BA7813C65F7A2BC095269BDC89DFEBCE38FFBBC1F3E163D4FA59D3D93D5ACBDB0ABF3BDDC3B0ABD83FAF53DADF96E3D38EFAFBB46045BBDDBC64EBD617F6FBD0D1EC2BD1D8C123D1F1D0B3E569A053EA08B71BCB13CB3BDF16B033D2AD216BD47868FBD04F4563AC7177ABB90D4E2BC462831BDDD1F08BEFA70A63A3660043D4E1E1A3EEE35253E34EA35BDCF7668BD5839ADBA974106BD928A853C6A629EBC0A28213CA460ABBC4023C8BB2061E2BCBCD58EBD5CBE963DEC559B3DE7A32C3E602B00BDDB79E23C100BA43C53ADDBBAE4730EBDED7F53BD7DAE65BD617362BD97DB283D3DB2BABD053E3CBDF6D6B43C578D2C3D69C0C83C04510F3E3C28983DC6893A3DD23C88BDF946AD3B92FA55BC2A4E803D82D20ABC951C3CBD5A3765BC33DFB1BD60ED83BC71A2913CEFA975BD7113D6BC38BB0C3A2755EDBCFA2F19BD3D184A3D9A77EF3C0CD2CBBC933D163CDB6247BC5FDE56BDBAD4B93C18D97EBDAA9D4BBC5828C63C9DF2A4BD794335BCD7ED583D9DACD43C0057EEBCCFC2243C72C68BBDC168B53C190D953D0BFC943D52341C3C2DC2153D2C42C4B91E5302BCCE87463C57E700BD6819233D5DF33C3D8B4B0ABC72BCB6BB9E2620BDE944A23C8F13203D1501A13D3FB267BDA3CC58BDFEE7EB3B156E893DF18AEF3B9450B03C99CA943C084C613C5054973DB797893DA0B7F9BCF67C03BDA99F37BDA878CCBBCEC1A73B3EBB5E3DD782A8BD5677F03C58BA82BDCDB71DBC7E00273C2295693D9C7280BD8FBD55BD0ED4353C3A173F3D4101CFBC16F3AF3BFC83BBBD213031BE9C0CB7BD69EBF1BC73810F3EB82DFC3D1A149D3D69069E3C321A04BE97DAF6BD260CE83BEFDBF83C381D67BD7C78183C5F99D8BDF932E4BDBAF4A5BCC40B6D3D0135843D73481DBDF84014BD937C0CBEC29D8EBD70986BBD065BB4BC899B40BD118E2A3D036ACCBD3F126BBD2B333F3DC3FDB6BC8B6358BCE84A923D700982BD8BAF1E3C3290AB3D54FC9BBC3FCA9CBCC068BFBC8CEA55BDB2B0F93B25BB71BD3EF72CBDEE3B77BC06A2B93D724D9C3DF010333E7B7DEB3C3742BF3DFE92B03DC67327BD389BDF3C22B4ECBC34DD573C9BB7BFBC920694BD1EB87FBC72B9DCBCE63D013E4893323E9804563C4CEAEFBC51BAC6BD9EA5BDBD48FAD3BD8577D8BB4470CE3C6327953D94934F3C4A656FBD7B9DC3BDF98C933B6393B83DE853C4BDED79BDBD2B2DD43CEC1F7FBDB03BDABD01B9D3BDB47585BDF8E538BDC9AF07BD42D980BDC76DBCBD6B201FBD022181BD02B7DA3CF18DD6BD00F9083BB6B5733CC85CC1BD9E0E70BD3B2F9A3C756327BD8E059B3D88564F3B483686BCD7C5133C16B22CBDFB2803BD835530BD324C93BD068CCC3CFC0F3C3CFF39A0BD8A6698BA7551FABCFBC369BDE0AFA8BC46FA10BDA647153D6C0E39BD0836FBBC811290BC6B2FFD3C19E710BDB30C743D62216BBD3F34A2BD2E3B003CF5F31BBDD469773D26802A3DBB8FC4BCAEB0B9BB91DA9EBCEBC3A83BBF6B77BB738F0C3C6AE04CBDCD46CDBDAA2948BD33C1013D45E8AA3C4A9BC1BC504D76B98DD90E3CB5137D3D1F6C5ABD205799BCC193BDBB37BABBBB35AF9DBC56FC7D3DB71488BC1EB3033D2AEC0EBC5B7FB53DD07602BD5D2A8DBBC9118B3DF6F83A3CFDF0BBBDA58E933C032886BDC30A14BD709F1C3B8476B4BC4381E83C6DB853BD5B18A0BD9A31C4BC29663DBB3736D83C5B6882BD53E910BDAD738CBD39C7A3BD8EC8ACBD1439A4BDA5AB7FBD8BFA423DE61DD93BC031F83CEA358CBC588013BE5DC63FBD4341703B0CBDAEBD47A144BDABC8D43CB69D8FBD0B45993DB00AA23C622D423DEA8C043E4651B33CD626E73D30A59EBD2E7302BDBBA07FBD055B883C9C4DEDBCFD87C6BD6E1F21BC6792AD3D9C2D823D86DCADBCF6C60C3DE5AEFA3CB3AAA33C5E988F3DE9401D3D15210B3DE662B6BC425EA8BB44E01BBC60BC203B07F61DBC11B48C3D1EB6C63D81DBC0BB2C1EADBD5832B73C401E663E4AA51E3EEA2BFB3D1362393CE58EFBBBC1431A3D0E6165BD548137BD8AF249BBD20C42BB216EECBDE2C7D0BD6E0D13BE977EDDBDE6DA083E3D6AA53D41B132BD491C26BC0E00F3BD24D33A3D8920173DA4F29FBCAAFAD2BBC875CDBDC9542ABE80B309BE62523FBDDB086CBDC050BBBDD0AAB8BDC920A8BD5D7804BE65F304BEA0BE01BBC45EB5BD11E9CC3C6E1D7C3C88E325BD76F9243C091C373DD0BED2BC1B1D95BD6BDD05BEAAB18CBDA43E9EBB00DFDDBA281D3BBDEF61783D30281B3DD74F1D3DC776A83C8A57DB3DD354873D6FF089BB2696D6BDF40EA3BD54646F3C8CE3B23CDAC1263DB860203E5E0F243E8E9C353CF9AFABBD2C0C22BD875DEBBC74104A3ED47B813DDF0579BDD6FC31BDEE680FBD00A30C3D8795F53D2D03F1BAF976BD3D0BAA3E3D2956653D2E954BBD45B81B3DDB45E5B9FB7BDC3D75D6943DE61A2D3E5BAB0E3CC4CB663D618F433D17ACCA3DB8F3CC3D34A8BE3C244F4E3DF2EF3E3C13FAC1BD1093373CC62880BD40B0A43D29071B3ED07FA43DCC459B3D6A79CF3C670C293DBB4EF33DDD40F33BD52A413D7A9EABBDB5FD46BC02B1C0BD9BD09CBC775C433C7B6088BDB0E79439C421E2BCB6116B3DBDD5C23B52C1833DBBF089BD80152DBD25ED1BBBCB7B42BD6C7960BDDBDA67BDD11EAF3C9C892D3AE870B8BC69A88D3CC6E773BD5D0E97BD1B172BBD29D52D3D35A09EBD27D471BD8BE164BC109CF7B7660B093C1BE4BCBB42698FBDC9BAF7BC7046173D5D26AE3BA8F2033DBFAC3D3DF666073D630C12BDD3781CBD310D9FBC0E3426BCC0005ABC7348A9BC7670293BC0781B3DD82365BDD586EB3C57B5A0BDA9D08ABBA4ABA3BD359A6B3D9B3F9EBDE4A18BBDD3085CBC8B982BBC5FE3063D0EB3FA3B861192BD06C369BD500E2C3DC7CFACBD1F46703D83695CBC899DE33C6BED613DF3FD8C3D5FE4753C2B6C8F3C16D10DBD56E7D23B051B453D40F3CEB6ED8981BD9DFF82BD94AB073DC642AB3C81BFC6BC72402DBD251415BD016F633D596AD0BD698B4CBD11EC193D528B763D2C4E0CBD5C0799BD1C3F1F3C4C6433BC40C475BB4F0C83BD7F4B253DD395A23CA945A73B8DA8833D15809A3DD1B059BCA264013BC3C458BD3F3684BD381A22BDF674483B2FBA53BDB376193D4FBAABBBAC2333BDF67B96BBE53FC8BC5CC4A43CA76B773D9D1CE63CC833813C9963B2BD8570513DB05988BB321712BB9CF7D9BB056F94BDECBDB9BDBDA008BE7D4F1BBEC22E63BDB0B411BD7FA7A03CD710D2BD17BFEDBCEBBCEFBD2862CFBC7B723F3DE20893BD208483BD929E6BBD57BD9CBDB5F7E9BD8BB695BC5F4DC9BCF5D1AE3DBDB1B3BD30D91BBE47CC12BE3EE8E8BD57727CBD9677D3B99CE5003D0F7C963C3DBCE13CEFD00C3D7F49A0BC6F18A93DBAFF023D39F8E73C3CFB1DBED4A04CBE819503BE664D97BD453AB83D450B8D3CBF01ED3C692B15BDAA717E3BA5D911BD5FDE01BD853C863D55B1133E1AFB933C80375ABD7BB206BD14AE163D249FE2BC342E803C01748D3B15D47C3D65A25E3D77815BBDA447CEBC1A4DEB3DB719023D70CF07BD011240BD7C6C9C3DA74EE83D2558E63DFD15423D54060B3BC7D6F6BB3850643DA1038EBD88B12D3D03F427BDC21B383C82304F3D61439BBD42A8D5BCDC16873DEB0ADE3DA48FD43DA0C316BDD9427A3D71EAF8BC6EF24B3BD23546BD68BA2EBAF77CD5BD0083BCBD328A9FBD501C5A3CE40F433B71F08CBD1677AFBB8E69763DCD6595BDCD60683D5351483DDCDF48BB116231BD87E8B93C05B8A43C006B30BDE9607BBD50DF8FBD7CEB37BDB6C6B7BAED99883CE3BB36BC262F5F3DA02A5D3C2A85643C003381BD66B346BDECA8A33C441EFF3B222217BD0AD39EBDD947C7BDF33CC7BC76F697BD30611FBDB00A24BD6FD3C2BDE73AB23C7A8427BD57AAC8BD1B25BFBD0AB0ADBD4BC878BDC99629BDDB0789BC82F683BDC4D3FCBDFE77D6BD5CB669BD723C3A3D44AEF1BC9B10C5BD0AE66BBD5157A3BD3B858EBCC3D707BD325847BD651D203C374468BD4DC9B03B43FD8B3CBB38413DD9A7A2BC71148B3C24E7DD3DA21AECBC345371BDBCEA17BDD015ACBDEF0192BD365F7CBD22AAC6BD0CC2E5BD041CF8BD944E8BBEEA4644BE5BC9CEBDE66D8A3D8EEE263ED5F94C3C7A2A74BD93382A3DB951913C7049FDBB977CC3BD05B7C4BD9FFCBBBD77DABCBD9C0188BD45DCB8BDDC8DAC3B257935BDB9506E3D0EF5513C7959563DB8B5A4BDF075C9BDBB42CFBD442E83BDAD0A5EBDA0C930BDBF85C13C3B6188BD5E71BABDCBAC06BECE5602BEBA9BE0BD1201953C770CA33C80182ABD0B1DE9BC5AA997BC10E3243D3A50ACBB38AB723D29D6803DB407A23D9E15563C04A109BE8377F3BD6C8CE9BD065F49BD2684B6BD61B704BDDFB05EBD017E1FBDD616203EC966B33D6A21103E5AC9CA3D4339BB3DD35C013BD21E993C3FC89E3DA2CCB93C6B0415BD52E5F73CFE6C0BBD98E99BBD4FC63E3D7DAECC3D47FDAF3D5813273DCA4D293E1227A53D14B3833CF1C0623DF06A67BA866B0C3DC43C49BD90E00CBD2F19993B442CE4BCF38748BD5EB11DBD697A85BC650385BD4ADEE13D16D2EA3C4AEA71BD1ECA2CBCBF7FE2BC7C7FBEBA83634ABC0B60B2BC0C138ABCA24BA23CD66FE3BD0615B9BD24968EBC6DF5B4BDD664543C16DB2F3DDD824B3D7CCFEBBC1D8CA3BD7D800DBD7DDF84BD00790D3BE3A8EABBCC7C86BC8ADD0C3D6E1402BE3D05C3BDBE87B2BCE420E7BDD98994BD69DEC23CD884B83D6C5D8DBC42F7D6BBD4AB6D3C5EA144BDFE621A3C8CE6CFBBAD2FA0BDBC6B4ABD7EC023BC11924FBD6894D3BC41A10ABCE984B9BD7CA171BD5DD7493C61AE3EBD5AF393BD898F94BCF639B1BDB06615BD40EA0CBD2DA5E1BD266BFBBD8B4B13BED20C1DBE50B660BDC136A7BD1F3309BE0A899EBD289FB93C7B150E3DB35EA9BCEF3E06BB63026BBD930D213DB7E6BCBC278C7C3B3CDF82BCCC1BC53C6591803CD9C19BBCCC665EBC544E47BB67D073BDAE3EEDBB615767BDF335563D7373083DD2FC34BC1151353D883DB539776D733D7C7E903CFBA47F3D569C823DC3C5813CD91D0FBDD3F6C6BC7DB8543D43E9093DB5C2D7BC120F45BDC111673D7A4222BD9EA207BE31F4A5BD40C199BDCD03A2BDD6DF52BDA623273DEEF25DBC21132B3DC50B33BD7F9E663D25F35B3DFEF47A3D6636D9BDCEF400BEFB149DBDE49E3EBD4C4FDF3D5700083E525E173EA413E13DB85EBFBAE35CAABBF88386BC7ADE553D7B97713D697F0DBDCDBECDBDABB864BDAEE2A1BDDEA2123E7A52513EE50E1A3EC51138BD783B47BD50F933BC77E03EBD154DBCBCE62B4B3C0555573D2DF6393DE30AD1BDF9841F3D16E501BD76F06D3D3C0EAEBB1A9502BE706448BE713A1FBE211843BEBE3E01BEAA855A3C4A6F32BBD6FD25BD3A0F5A3DBCED91BD0A8ACFBCFA3B593D28C350BA055D9EBD63483FBD7EEC9BBD08C822BD573CB4BDD37260BDD7BB7FBC6B2DF0BC70AC2A3DE54299BDFC352DBD467BA1BC58F61D3D9D8C12BDE463DA3B7922F13C7589AD3C7DDBB83DBDC305BE1C334ABD4B44E6BDB57FD03C266684BD199DFBBCAED079BDCA1C9EBD9A6B563C281A7DBC2AFDF7BD7F6600BDD15B453DFAC1353D58B682BD143D74BD2986AABCBFA3B4BCF1130F3B7116A4BBB2624F3D9F2BACBD56EB96BDC350ACBDAFB841BD7FA321BD3B6B173D45CA853C5646FDBCA626E6BDA4C555BC4C28463DCEBD2A3D2FA97DBD055908BC38FC3C3D96847C3C9AC3683C1AA58A3D1EF8873DE51DB83D1799893DB2B8A53C4152C7BCC803CE3CB4863C3D34B573BDC17F493C256A23BDD44C5EBCF6370DBD879D87BC4E069CBCF6FCA7BDF9C5D3BDC6B3A0BCE21626BD47F56C3D234213BD5679683D6EB127BAEA983BBD4B0C36BB57F04BBCFA4A793CB514223C9F8982BD08689D3C48DE2A3D31CD6CBCAB03B53CA9274F3D1E156ABD5D8E4C3DC9AD80BD59A1C7BC2123C23C62D907BC52BA5DBD2DD545BC30B14F3D43B4FF3CB2EA1E3D5193A23DE028BABCAD76913B495184BD7BAF09BD8C31413D4C7E9D3CC6FC40BC4A5828BD6B0F89BD67E2AB3C561F49BD646F6CBC70C760BD365D16BDBA3812BCCA1DB7BC87A77FBC9AB1C6BC9EFB8D3CBCBE343B8B7F593D5A716BBC2983C5BDE28661BD8EFC78BC8A4FC2BD1BF68EBDD30820BD57828FBD9127523D91E0F5BC747282BD27DA7ABDF53758BDDF55A3BD513AB53C0BB8EC3B2162D9BDCEEEABBD756C4EBD0603E4BD32D4273D6AF520BC70C324BBB3B371BD15FE03BD818F1A3DC708A8BC35D4AABDD82D4EBC316A9CBD64D1EC3AF69D903D69290F3D206BAA3D223C873C71EDA33CF7B2ACBCC849563D9F80A2BCD281873C8F2A5CBD03DABBBC29C4383DD496613CCC1EBE3D328F2DBCCA870F3DDD2CB23C6E609FBCF2BD7ABB832C583C0059CABD6DD40F3D67724CBD732256BCBCF38DBBA35C3FBC132CA53D5F98B03D9D84463DD019F83D5953543D3660693DF1FA853D3DD0343D123AA8BDCE84A43CE3CDFABC7340223C38239D3DED120B3E97C0293E7A8FCA3C56D01ABDEF338B3D328BF13D87A87E3D8FAC8C3D54C740BD39A97EBDB8FC30BCA2D3433D6A1D67BDD8CA233DBB27543DFF6F1CBD6DBD74BD181F863D10D5223EAEBBAD3D8D6EAF3CFA536F3B8EC24E3CD13AB5BDBE37213BE628F93CB5ECDC3C5F6C92BD5603063D50CB20BDBE9DA6BCA6A7FA3D7F8F8D3D1BC86D3DAA70B93C33FB3BBD3B0EABBDA08D61BD24B587BDB28EA5BD54940D3CE200BCBD7F2F6DBDCFDEA4BDE1C911BD6DD021BC182EB8BB572A16BE8BC215BEA22679BC608B03BEA513D6BD5F300EBDE25087BC54D133BDBF59F9BD38BD41BD3C8612BE425957BEAC974BBD640286BDAEBDBEBD8F6C02BE5E740FBEE0A244BD15C7C6BDA4C50F3DDD229ABDAF80EDBCD15D8ABD09682BBD880374BD9F1A6ABD245601BBE670CE3CCFACE7BCE7EAAB3CD6977CBD1131D1BC46BDB83C8532613DF2664D3DD8A8A1BD036A51BD96951A3D7AFA023D7FDB7A3D2B30E13C2C9C49BDCA2ED53D1392883D4A11693D749D24BC9CF2273D49AE73BD421DAC3CC02F773D14E57C3CD1E8B6BC034B6E3C7FFA923D5B0AACBCD89166BCACB0F83C2FAE8ABC43099FBC9A7411BDF809EA3CD16F93BD6C118ABD85D54A3D673384BCAE188DBD880DE53C02A058BD77CC48BC3AE7173DA86834BD2ABD7DBD48AA343BABCA29BD4E29BBBC4B023C3D5B39113C85C16B3CFE7D91BDA04B52BDA61B6EBD7FB2593D317237BDEC502C3DF776303D197CC0BDA188A1BB42B929BDE9BC813DCBBE393D8985653C7322FA3C022DDCBC151E96BB338ACB3C1802473CDDD78B3C53C69B3D7050BC3CDB71933DFD6A953D915D7CBDD3FA84BD9EB327BD475B9BBD2EF638BC2711D53CE784583D2A8BB13D05ABA93D04E8E23B44D196BC49133BBD7460AFBB7C50873C797B9A3D4B212ABDA8BAA8BC7F2678BD1058FEBCC4D2C23C1056823D82312A3E4C0E183E4E430D3D97F5DB3DCE0BDB3C75C4AABC2E1AA93C07FA633C804995BD1AD033BBDA2DBD3C7CE7A4BCB68292BDEE350FBE8AB21EBDC43BFEBD2B94E7BD66C088BC00566BBA9880B8BC33DCEEBD3959D33CD780D6BC374C32BD120D783DF28B3B3DCE6818BE76C842BEFA7C3CBE564C8CBE8679F3BDF81C673D8FB7A43D2C6AEFBDAD0D59BDB6F564BCA06E6CBD5B947D3D8683A8BB64690CBB6B1F7CBD5B21C7BD8FCB00BEE1C0B9BDA8C9203EC107033EF09EF43CD5791ABEA1435FBDF777AE3C082D343C9F5A3D3CFB370EBD4BB1A5BD8EF6953CDC0DC7BDE5618C3DAC98EF3DFA629A3ED83E0F3E1304B7BD5C58B73B7259233D3473CDBCAC89363C4C9F35BCBD93FCBB9A08903C08C58FBD5AF7BF3C3F270F3ECB2C2C3E5F17163EE27EAE3DDB1128BE92C087BD0A7B65BDB12A753D7C818DBB9724E13C257F6DBD8EA8BCBDC0C509BD5BAFA03D803EC63D3AE46D3B7CFC7E3D505A81BDCCACA2BD65A27EBDEE738EBCAC42F73DBD2439BC4B5D3E3D7D94FEBC1C139BBD33D2EABCBB90A43D9F21BF3DC5D8513D66DF263D0B9A053D2E81313DF3C45E3DFB3AA23BC46F883D92288A3D41926D3DDF726E3DC73D9FBDA63225BDFEEA673CA96FF83C429E40BC3E64033DCBA10D3D95CF02BC705D98BD5A6827BD92FC043C82F36F3D7C6FB8BCDBB2283DFC24803DE56D243C364A763D7C19F23CF0E4A1BD119183BDFBBC973CDC8E4FBD7C9629BDEC8408BD424786BDD14721BCFC6BD93B85DC8DBC9BC454BDCD6660BDB9FA5C3DBA0A643DD0E423BDA58C5FBD7B88AABCAC8640BDA07B9ABDC4DA6DBDC789633D49E1C0BC2BB5463DDD37B93CC3CA31BCDF6F01BD7288363DE156AEBCE9B63FBDADAC323DDBAE9DBCA0A9183DF4C7903CA1708ABD4BC51CBDE3B7D33B1D0F62BBF073FA3B73BA1ABC607E67BCBF85D33B06AC513D4CB64A3B7DF40E3CB79D853D81FF763D5073503D8AAB2C3D0C9888BD2DA7E9BCEE3970BD3F7514BDE7F5073DC29BA23D994412BD86D1C13D9F96553D5673F73D40F5943DAD17843BF0CF583D735B3BBD3A8837BD655C54BD6FCCCF3CE325AC3CEF9325BD813DCBBCD463B03C5335033DE5E80E3D423A45BD8F00A83D0CBE4ABC502E443A46CB423A0DB38CBD11E0093D91ED6ABD444C003CCB4118BD9A53303DBD2D83BB1BAB23BDCCD0B1BDC5B3BFBD0B2D38BD0D1A6E3D104B063D064699BBA6E318BD374798BCC2B305BDDAE504BD79D7763D38FD30BD5A7F603D7E0C2B3CB15A9ABD56F7243BB975ACBDB43B97BCDEBA8FBC7FB786BCBA79FB3C2304DC3CD4FDC3BC6FEC6BBC027FA23CF9867BBDD2AFA03CAB3133BDA7F7F3BBE7ECF83C3928B0BD509B8ABD8C4D03BD9B92E53D0A394A3D712F6CBDAFF1B4BC5756553D27488BBDE7C7C03CD50455BD7418A3BD336443BDE6ABF4BCEB0A0DBEB3797CBD4E2FD9BC80A4013D17B860BCD923063DC813B5BB89BA74BC71FB53BD9F19083D9B0D88BDF38CD7BD723A35BD414A45BE2EA903BDFD63873D88E54A3DEC57AF3DCD2EA7BB0FB4293DD0FE3DBD58217FBD157D0EBDEE4E993D3050203DF29A1E3CE6A73C3C3D5CBABBC4B59F3D8300863D6CD0203D7A97BDBBC3D540BD8BFD573A3A3FCCBA41AE8CBDD563883D3CE9833D3265BE3D634EAE3D9F302E3DBCDB643D4461833D01DA6F3D60C4B1BBE5F463BC0CA092BBBC974E3D5F5237BD490B0DBDA34D20BD18DE4FBD8A8B753DC98DCF3C87C75F3D030EDF3DA2A6C03CCF92043D800056BC04E9B3BCC2741D3D4C6B8A3C6BF565BC1F9658BB18AB25BD6F0C44BCB906283DFAF95C3DA5446F3DF69C6CBD2B02F5BB944BC53CBA47333D7EB43DBD634180BDEFEB973CE1A13FBD5929843DD9D852BDED93E83C2910E7BC9B1885BD45BD99BDD249D93CAF38E4BC211755BDFBF4823D0ABF113D4C24263D533E1FBDF05629BC44BF133C813B78BC89E4E53C8C6396BCFFB808BCC9928F3C6F77F9BBD633E2BC0E39953C13C9B83B9D12923C7F86DFBB268B1A3D85C695BC5D92453DCF496D3C7707D5BC5175C53D2160A73C9DE391BC51D2B33DBB503DBCEEF8E73C6E565C3D6AC30F3C8EA2B3BC215B6A3C408CCB3C905E483D25F4653CBBA5533C212CB93D6C45113CB2C8BFBDDCDD24BDC008523C37596D3C50BCEDBDD1EB12BE282822BEB55DD7BD8B2AEB3C57BC87BD6A04B93CE3DE8E3B74784D3DD589B4BD5A08B4BD54B0BD3C3A3E9D3D19B91C3E7E5A89BD976C10BEC3448EBEE1C026BE62F58EBC2356023B3A9535BD0ABB90BD49C466BD7188D6BD88C135BD75EB753C2F52013E3482313D557DF7BC28583EBDC46532BE0FF126BE5058D2BC24210E3DB4943EBDF2E548BD30ABD5BD6585423C3827A2BDF1DF06BDB6788C3D4D6DE63C278C773DB81E0CBDFACE67BCE057073CD73F29BDCDAF9DBDDD677CBDAD459BBD4DCB7C3D60EBCAB8C8C4A9BCD1CB863D899CF23D7CBAA63D7825243DF21DACBD911079BD4991823DC559023D15C4D63CA6C8213C718374BD4A72AEBDB27C883D603CFC3D9555273E38310C3E7CAF593CFE25DBBC5245773CD612D4BC9FED983DC88ADDBC9A75203C519988BD2033D1BDFBF1ACBD31D575BDCCCB0D3E22ED143E55B2DD3D4A8113BD1DE23C3D05B2AC3BDCD25DBD293DAC3D4C7F96BDDDF6663DF161DE3BA28EDEBC2393DBBDCA4E06BEE881DC3B197F67BD8945A93C4FE2393DD999083DE468043CB184363D94814B3DCD1459BD989D223DD6781C3C6C03C63BEABBC1BB24C2FDBC0B709ABD63E9FBBC0FAE783D70FF63390947C63D81CF0C3D703F363D15343F3DAC85443D28431A3BBF9530BDDAFD56BDF818A6BD25E7F7BC87DD06BD5C0656BD7025F5BD1DE50B3D9EF223BDA61A91BDC926783DFF3C223CADFC4F3D45BD0CBB6328703D50A80DBCF2A812BD023AE53CF7180B3B21E42FBD97510CBD1BCAAB3C6C83403DAE807FBDB30E67BD760B1D3D4584363D062389BCF5F008BDF65A903C7036503D5C625CBD30B2203CE0C2023D9277513C1FAB743D938596BD2671093D32BF61BC18192DBD7ED1213C39E3BEBC756A653D3FA16BBDC5E60D3BC3191BBDC9D6BE3C85FE263DE64A0E3DB899963C2DBD8FBDD00ED3BA5E4B59BD39064C3CCA30453BA17C89BD39576EBD39B535BDB99F9BBD6D0560BD0A508DBDA41940BCCA04C7BC07AAADBD4FFF20BDA50004BC80872BBD8C75653A442D60BCE6A38FBD2DA34D3D88ED88BDD8FC67BD77DB263CB93F4A3D41E0833C794183BCBE65BDBDAAF1BFBD789B253D32F39EBD3CFFF3BC7B260E3D9B3A413D0706213D425720BDF3C3B63C96C5413D56223BBD64A848BDC722503D89680E3E06151A3D09BB863D48FED93DB39DD23DA514033D8CF7EBBCBCEC003D33778BBD5146BD3CAFAD2C3C72392ABDBDAFAD3D67C8B13C31082E3D6EE1F03DFB03763C399E1B3DCE660E3D6F11693DE280C0BB74ACE1BC4E004ABCA246143CC6D500BDD6E2143C9DD5B1BBE7C319BD8C0264BD6CD038BD2C7DB13B5F46A6BDCD1D433DFFF297BDD902803D2DA2A3BB7348233D89C1723DFAF69BBC6FB387BD053BBF3C5317CCBC31123ABD18CC0EBD62F667BDE1C615BBF12299BDC9FC2EBDB3CDFB3CEFFBD13CB4B71ABCCF14EABC886B563D2B528B3DE32FCCBCD64F9B3D2300EBBC927F143D6029433BB12CA8BDDD21F83B7E2730BDB9B7D8BC641B21BB01E729BD28A5803D4B9AB63D1B68393DD6AD9B3DB064F0BC80EB8F3C88B511BD9E7701BC325513BD4AEF41BD0C7CD6BC93E594BDBDEF1EBDBB8F3EBD9CA59D3DAEDDA6BB1679753CEC7230BDAFBA81BD740F2C3C84466CBDBF5EB13C2D33E6BC43FFC13C20CE213D0E3D443DEACA753DD19FDEBCCB9BBEBDC65F60BD61EE03BE03C44EBD8532B6BDCA43A0BC9CC32F3DDA6D18BCC67D453C38EA7D3D851C2DBD7DF195BD9E8DFD3C120F3E3D66601BBCE1819FBD4D0077BCFEF2993AEF4447BD764DC0BC5D074A3C2AB74E3D9527333C4208813D1AA5753DAC45353C0E744FBDE5B51FBDDF0EB9BC34A8E43AEF973BBD6DFE84BD5BDAA1BC165356BD1251DB3C3E1D15BD6BFAE1BC588ABF3CC961003C6A6C6ABC2F40D13C95C186BD4BE6083B766433BCC731B3BDC6A2D8BA696484BDC7AE0BBD8D4949BDA116AABD3AB5F73CE37BDE3C1051DBBB62F37BBD67CA473D6A912CBD37CF94BDD350B6BDB0884BBDD9A6CCBDB3158ABD12A0EEBD6A1F72BD1E3AE6BD4AFCC4BD20D2A9BDA67C78BDDE582E3D9F0419BD450196BDCB558B3C9EDC8CBD455A3BBE89887ABE85BA68BE3C4E95BE05FF3CBEF4A555BEDE2F1ABE79238F3BE5468DBC98D8EE3B611814BD5917ACBD941AC8BB820866BCB12A763D7D8D053D52169B3D7EFF423D8B1ED6BC125ED83CA741D1BB9C22FDBC75164BBD8581293D743F70BC3CCB6DBC127282BD07F9BB3DB9C41F3EE70D5F3E003D933E5E34543E4C9E343EBA89C53D9F96AB3D4263B03D6AABF4BC5E7BBF3C6F173BBD321BC73C4205623D8B94463DFF2D1F3EEE26A73D64C4863D48FBAB3D60F4DD3C28C24D3D6E17653D5CC552BD441733BD4371ADBDF4F3173D022D643D806C553DF91E543D66F7A9BDC85DF0BD0F3200BEA72741BC4EE051BD261FE2BD19C28FBD317A80BD492519BDD4E178BD2F31A0BD38CA0A3DFDB3D4BBDEA4D63D8E0C933C99D6D4BDE34BEDBD630AFDBB30D4423D8BECADBD1722A1BDCF1A50BC8A759BBDC5E2A73CCF16DEBC7E079ABDA2CF9E3C92C18B3D95A8DD3DE25F783D5723C7BC4051673DDE8D943D7F52943C6BBDF23C13003DBD653ABF3B0CB1BE3AF6C03B3B92A25ABDBF74BD3C25B253BD44CDCA3B56FB40BDBA21CD3D87309F3CDB5F33BCC1403BBDFE74193CA07E293D6ED189BD9FB7B6BB7B5AB33CE7C7A6BC48F4ED399A0FA9BDDFA4EABD8521A8BD3BC0CCBD5CE672BDF27C73BDBBB4C5BDC6205BBDE01283BD6B560A3C4F943B3B8E5820BCBCE75DBDB46F14BC500620BC2329F0BDBC1D15BE27D9E7BD5D7E22BE69A39BBD0FC325BCA4F747BDCFFF253D47337EBD008074BD0D33DBBC8BE5C5BC40BD3B3D60378DBCEE48743DD1A03FBD003158BC3F2F9A3CEBCEB03C03BA383DAD2646BC49A4A53A289998BD309F1DBD7DAD49BC45508BBD9356E5BC0AED5A3D9A2CDBBB0734033E1E003E3D0E00053DB826993DDDB886BC9A51C53B7F78423D66E3223DE7F14F3D66518DBDAD72743DA1428A3CFDEB803C5958D8BCECF449BDE0B871BD421C77BA044480BD8E599CBDFEE3343DC3E709BD3CA78CBD26C89BBDFA5D033C0AE860BD3B5A02BD27E65CBDCE5651BDAF808A3C039C353D22C6673C790B24BDE835FFBC66DF9BBD5FB7FFBC0F7F073D27BB63BDC210003D437D8CBDB4FEB5BDA270183DBB86BC3DC170C83D92C841BCFC7680BC86CC5E3D8C66A8BD204D2B3D6F7B8C3DBC04C9BB379A613DEBE991BDBE7E2D3CD17D7D3CE25F813D61D7213DE510983D32E00BBC81BD183C3C76173D0831FB3C1646743D49908D3D1AC96A3DE14A83BD1599653B7D44B0BDD3CE983A7F7DE13D5B944B3D97D0083C2882A2BD5519F23C4F287D3CAFED653C05EF6E3D91CBAF3D3ADF05BDDCC3D2BC15C37BBD4882823DCDD6C33D670C003E345C733D663983BD1BC41FBD0F44FABD39CBA4BD7E6DCC3C6BF9593D04E4963D87144B3C384958BC222F9ABD219A75BCAE080B3D119FEFBCDC8524BD664058BA646C0BBEEDE39DBD783F9BBDEE5DF4BC7705DABCE1765B3C94FDF43B339BBC3CE4C3423DA384143DF998DD3C2728A53D7649373D6336B83DE4827E3C508ABFBD7959C9BDED3DEEBCCFF3B7BB684322BDD9EFDA3C57F24F3D6EF59FBDAB2E14BC61F3883DBA5AB93CF063D73DCC6AB63D7C4A453DE820853DE297453C9536FEBD47D0F83A92E3563D183E413CD653FABCB47D86BB9B06AC3B5262C03D4047833DEBD9D73DDFDA803DB178CD3C80D9933D5C14E23C5ECC2F3D69DA93BB13E4AF3DFD0DF63A7B329FBD22ECCBBD322A703CFA681F3D9523EE3DA397373D499035BD378499BC00AEDC3CD3DC423DB0A8083E14971C3E9F7B5A3D429C733DDF044EBD00A205BCAFA466BD36DC30BD0C38B8BB8638403DEFDBA9BBD219793C964F583DB128AC3D4CFC643DF87088BB37CD0EBD1585A7BBFF58EA3B018F9FBCA930D1BD732101BEEAA115BD0E873FBD9B117FBD8AA34FBD2391BCBC6DCE1DBD62068A3DFC5D693DAAB851BCC9BF263D4134BA3BF9B70EBDB2D57FBC196A38BDD2CD36BD107AFF3CE7E101BBAE6C933C86E09C3CBCE60D3D422407BA68BB61BB74CE0C3DB58B3ABD68B8833B68B5BC3CC07FF2BA5A3128BC0D761B3DC69A013D18384BBD8DAE6ABCC9F51ABD969F223D5B00593C3061293C09D61A3D747C00BBB5014F3D0A740DBCD58E2A3D5323FB3C40AE693D3769C6BC7E8A433C066D96BD31CD5B3D64AB0CBDA0E281BC862A9CBD8A89F0BB1C0D813DEFFAFEBCB7AEBA3C0ADC143DA7C7323DA5FFB03DCACE36BC57744F3DB00C053EFF7FB03D53DF91BCC332DCBD2F7A013CCD606EBD3212853D525D3FBDDC04143D612D0DBDB98A373D0A1E643DA1CDAE3DF5824B3DC351DC3D0FE77E3DD2BB543D2B95183D5F524E3D0A3C84BD351A203D371040BCC090C937B2082CBDD416983B004FEB3C7907A73DF87ADB3DB265943DDE5DC63D9E03E13D94F8FC3D4587D93D61A4183DE3A7123DD9E9A7BC3A7AF739B200AABC69D6F93C8B9A12BD54BE7EBD1E589BBDAA3F15BED1695B3BD836163E2580F83D57ADB13DB490423B536376BD22600F3DA7E3323D6B277FBD41D4D4BB366A27BD5915D2BD0446903C3520B5BD23DCD1BD36BF583DE95BF83C1A1E943DF04ABD3D2665383D3D00483DD6FD14BDD9DD8ABCBC630C3D7956A7BB6FFF9C3D40470C3E7C77073DADAC51BCECDC89BD96386EBDF4DB98BC89E709BDD6B9343BD3C2453C67704DBDF0E0A13D1A30C03CF90DF23D5B95953D0962943D96F4BB3B7F72943BB855753CB46EDEBD594A433D2936513D6ED3F63C2D90453DD97D203DB8C7033EF53E1E3EB26BBA3DDC769C3DE3ADCEBCE4A42F3DB3787C3DEF51613D95D8913D655B1C3D573CC53C35175F3DB22D973C745C2DBD6E2824BC58CF623C1317ED3D87A6453DF1212A3B76CE3F3D21EDFABC977F9F3D2666973D310AAF3D5867A43CF99D70BD3D8E993C186D823C66FF8EBBFFA57A3D1CC23CBCAADADE3D39BB9D3D86BD42BCC08CB5BC88F0473DA96A9A3D623A863A623EA5BC747C0ABACAB084BD9E91C4BCA3FA88BDD80EB33B622FA8BD20019438DF993E3DF2922CBD9451673DF2DBF8BC340D6C3BB18A583C5EC938BDF5093B3DFB33943AD0078BBD1864ED3C43980CBDE87A4ABD3703903C55E54C3C187271BD6C89663CF66E3A3C38A393BC479D4F3D66C9AE3B950A103D00F498BC709EA93C6A36633C4E70573D5A3C85BD704897BCAB70153D4C2C13BDE8DD5EBD75022E3D6145083D4E8E803DEC6CC63C741BB9BC722571BDCC874BBDA0748B3C09838FBC70718E3D3DFE473DC049ED380D337D3D66B1AE3CA4D4A63C0A70903D07923FBC834F973CC806FEBB529A803DF998CB3CED9855BD7B77BFBD60D3383DE611433D2CF4B13DA45EC33D24E3D93CFCDEEA3B127C91BA46881FBDC589CF3C1B302F3D9340853D3B158CBC8B94D6BDFB0AB63C3EEB90BCA65AD83DFA3DD63B5F92A6BD04C5BFBC6A43843CEA8F45BBDB48083EB6892A3DDED30DBC8F822EBD63868BBD866FBFBD8A2101BDDAED013EE2D5C63D6AD08D3D94F93CBEF123DBBD6C4DE93C5BBA203D9C5C7B3D15200F3E77CA243C397213BD06F8B0BA1FB580BDC2771B3DEE9F423DDD92323EDC69AE3C8B0F40BE051716BE55A423BE157966BDEA6ED53B9F48BF3BE2C3E2BC1E1C6CBDA1B348BD417773BD2CC5C6BD256F49BCFE729B3DF87782BB41876ABDFFB98BBDA5DCA3BDE95384BDA4D785BD6AC1503DE159A53B8743083D89824C3D6FFF3FBDF1E889BDF0A424BD6A19BD3D2736D63C32961A3D107BD4BC4D1A56BD4D698BBDE1E0913C7D69923D7B6581BD9A8355BD06E5933CE633F13AD593803B368F253D2F49103E3FA41E3E312A0B3DE421933C6B7D2DBD59A837BD54B053BDD996DA3D152F20BD17CE7DBCE07B083D00C261BDE1CFBE3DEDAA2A3DDE74073E29D1213E19317E3D14DA273D5277CC3CC883C7383AD2F23DB5A4B93D2EF38FB9DFA7F53B51CA45BC8D9689BD0895223C1251B43C91D4D43DA46F063DC689B83C3BC005BD3212D23D52F9EC3D98C6AB3D0E9E3A3DD6DC01BCE6578DBC81E9183D71E3903B5E1B203C876298BD41E98C3D6686DF3D7040F73CD3A4293D0E42523DB255063CE764C1BBF2A061BC6DE4123DB343D6BBF9C61DBD8BAB9B3CBB7153BD954F2ABDBE02C3BD1090C33C1994C63DBFDFAABCCE5D63BD0039CFBB74B6C3BC5F9B5A3D0B72823D9C8D653DC44702BD5A297BBD97BE5ABC02E69FBDA944E7BCCBFC7BBDE701D93BFCF11D3D6B9FAB3C3D096B3D0BC4233D029B93BD5A9E2C3C451A4E3D5909033DF38581BD41159DBDCD78A3BB5676813D1BCECEBB448D0EBD92CE74BD666C393CF5E6523DD55C18BD0DDB6B3D6B73133DA3EB7F3D929B083D820BA7BC3D48693DE45A32BD8919893DAC06043D27D2933D170DCCBCA6A64DBDBBDBABBA5EE614BB464F59BD98C19EBDD3FA41BDF790763DFCDA633D209A87BD1A71FC3A20347E3DAC8ECA3DC7FB163E49DAD73CBDD2DA3D1C24C53C15F51DBCBE9A863D2CFFDB3C5AE5743D3B7C0CBCD28FA53A619D93BC8B3A16BCE3978D3DA89628BD8BCE6ABDCF49F2BD53F5B0BDFA8E95BCE8AED53DB4D34CBC344357BD7FE083BD3757343D49A4343BCE5FD93C8CBAE1BB2128C73A4385A9BDE64C03BD69BDCFBDA7BD92BD594CC73CC287953C4169043C0B24ECBC487B45BD89ABF7BC69C71239F94A98BD1D26213B67A258BD422BA3BC365289BCEB049D3C1D78D9BCA14F7BBD025DE83C7DC577BDBFF88C3CD84F403D1C0695BC5861DBBCE353EDBD0530DABDB5739BBD835A3DBD3CB0AE3C36C7493D4687B5BC7F75633D69F32ABA6F96AB3D34123F3D437FE63C523AF93C6499E9BD6812AABD983967BDCE23893C3BF73E3EF5E44E3E8BE1DDBC9F7C95BCD83AC73CB5F5C1BCEB914CBDDB0ED83C32655C3BCB199E3B5864363D7199ABBB258E953B951CBB3DFA431F3E15ECB13D0EF0E1BD8935D2BD867B0BBC5215AB3D2C845ABCAE0E653C8342F43C1AE2C7BB7DA0423CB4C7E73D0022CA3BAA9A0C3ED9603B3E0039F83D19B02A3D8B4E8DBB5C250BBD102734BB68B2E8BCE7AA3EBD9F0A91BD322D0E3D54133F3DF670443D285F9F3DC288893DB7638A3D2296D23DE03D943DCB10EABBDA09BF3D823FE13B181283BC7714883D05B852BD3112C3BCC9602A3C1FF838BDC753873D34A4423DC0AD2DBD9475563D2D03723D08F2753DE6B2DA3C777643BC6EFE743DECCFB2BC84FA5CBB11A560BDB28E8CBD42D8B8BDBA5A02BE649E73BD8C9F4BBC8BE834BD5EAB9EBD7DD1FC3BF4F190BD862A9ABD5FC8D6BC6B9825BD06199ABD59168ABC67253DBD44CC27BD163F1A385BB125BDAAED603C2B13DCBD787CDD3C222B143CFD3409BDE96C2B3D9107753D028F9D37382D3D3C5E65E9BCF4A85EBCE0BB30BCE19932BDB854CC3B19CB0FBDE0FCEA3C49320E3BA85F81BD7B39693DD2675F3C36D1D23CCBE1A1BD7E33593D35DD583CB2D75ABC6D674DBD94A29C3C8C722E3DC277F73C3B09703D967161BD3BE716BD412CBE3DD0068E3DDE0E2DBC25CB003D4E2D2F3DF5C82F3DFA9E39BD01BB19BDBACC43BD1FA0E3BC829C253D81E62E3C570B69BC9AB2BA3DD1B9963D8724513DC443D6BC3926323D3B1588BDD82CE33CC52CA0BC2DC3C7BC6A09A9BD41BAC5BC4558CDBD3A17EFBD024E92BC5D109ABD487FF53C93A8833D69CE923DDABB073B48AC80BDA0A4F0BC143448BD26A83CBB10909CBD008134BD8A7D8BBD41AEA1BDD299A9BD014048BD2A3AF2BDDA6EACBD625863BD3F60703DBA320B3D9D1290BD4B3C8EBD4F724BBBF1A64CBD77D20B3DE4890EBD15208ABC9EEE94BC1949E2BD0FB39DBDC86FD53C3E972E3D81C56EBD5FFF503C2E75693D3D089ABA89590DBBEB61463D2079393DBD58B13CE4C1803D6B323A3D089F77BD503AE43CDF89963DAA53A53D9C8E2ABDE39010BD1D49193DE0F7543D74DFC1BB5DB1DF3D6FD9E43D8D2F813DDCB9483C0026DEB6BAD4783D8438633D0BEBE43D26565FBC492F08BDEEC689BC10F2483C4F63323CD716943D792C163D533E1C3D2E5BCC3D71F7453D00277A3DE7D1AD3DB318B83D3C69893D73F5613DE02F92BD8D2DF7BC285BFA3C065959BDC540EE3BF8ED1AB96312363D97EC1B3DC7050A3DDC4F483DCE48BB3D4EE4AB3BC340A9BCF9B56B3D383225BDC089273C59D088BC1BF7BDBA4DED973C0E88A73CB8880F3D17B6983DA42C233D7E05723C61DCA53C1C1151BD160262BC1A074BBDF7E7C83C2EF9793D6BB20DBD5D70A8BD6833953CB848A6BD234F97BBC1068C3B163158BD696DDF3BBA172DBD40BC363D6D1999BDDD1390BA7A4E45BD1684443D5EB9D33C46D7373DFC5684BDBB69F8BCD2E7ECBDA0F69C3A21AFA1BC803D8C3CAB731E3CF0E37EBD488CB33C18BF1EBD1B679E3C3CE705BD749CA8BB48341ABB74903C3D30C909BCFFCFA2BC63253FBD31BACABD5BDF89BDBD1676BD18A1183CB9E569BC5E6F663CAAC339BD583BCFBD346880BB1F740A3C4AB2A73BF950DF3C035AD6BD445A88BC851ACB3CF1F98DBDEB492A3C92D2BC3B60E784BCC289C9BD0DBA5E3B5A7E0B3D701F27BDA7E12FBB99AB143CD0D7EFBDDAB914BE97AEACBD335BB9BDEE05D7BDBE1EB8BD777262BDBD699FBC1A1E55BDF3E8BCBD64D718BD81EF06BD3381C4BD4DD9A1BCB770A63C5BE6503D099ABBBD1075ABBDD2EE6EBDB54CC93D68B0113DB0C7133E3FFEEE3AEA472E3A7CDAA23C809B89BDA648ABBC056DE7BCC4B6D63C9E6F50BB505486BD6A9196BD68EBEFBD8028663CB88AA53DFF3F233EE1A6303E03937DBD503E80BD4E9160BDCCE7A8BD824C27BD5EEC6DBC0E3E473D585234BD1E0D51BE3D99E8BDA47ACEBD996CB0BDD3335A3DD496A33DA06B863D643A9FBD6250CABDC800643CDE25963D3167513E92556A3E7D7E423E24E7053D66DB343DB37E11BEA68845BE70991BBEC4261CBD48AE263DD02120BC8F0ACFBDC2F0623D7180263EEFBA4C3E6590103E2FEA423E85AE573DF28E1C3EC033BB3DD1E203BEB3BD31BE195F80BD2D51B3BD675A0CBD526997BD8815FC3C0D34F93D87E4203EE683053E5C64B53D81E900BB6BD0F13D52C60D3EC5D8F73D421123BD6A9B1BBDF31FD4BC795098BDE2A4E6BD768202BE4B88E2BD9A61ABBCE122683C1894653DC9FBB83D845AE23C6DEA473D59778DBC242FF43C808A08BDC0AA523C5DF9C43C909082BD53FC05BE276E85BC01603CBED76A4FBE885AD33C0F88B03CA3A6133DD87664BD90E274BD44F9E9BDEEB4C0BD90A81EBDA1DE67BD93EA15BDD6200BBDBB74E5BDDD978FBD2790EEBD35DF2E3CEFE21F3B3C5709BC16B6C23DBAF8CCBCA4570ABC0DABFBBDCF3D8D3B24C08C3C58BBE0BDC296C7BDD7CD04BEC0611F38AEBE9FBD7DE9503D514FE53DB3A1513D89CAC43D6A7648BCF116D23B79AA3BBD076C363CA63A283D4C13AABDFF5036BD9D6972BDC604D73C61E21F3D1A9758BC074AD53D7F588F3D6E38883C1F952F3DB496083D47D2E1BCE663B9BD2B152FBC716EC0BD849DCCBCE43DA5BDB47AA23C89B8B9BD577FA5BDBAD38BBCA79DEEBDF421783CC041CDBCDEBCD93BB1E594BDB6C305BDF0075F3C042A883C3F47CBBCC3CD2F3DCFD33B3C285A23BD1199B6BDCDAE1D3D6D3F123DB36970BD357788BC986C623CC5FB0E3D911A41BDBA114C3C0F1974BDF52061BCF9F010BD8803BFBB3C39CA3CFBC6973B12BC7F3D288EACBCC42D82BDAB6BB43CD485F4BC763C2ABDCEDAABBA26E20BBB5D37F6BCD7DD60BDB37702BD3B02CF3B3E11253D6F0AC5BC2D83023E5EB65A3D728EFE3CDFC3233B3E55C73A9F736F3BDFB5AABC36D3DEBCAE6082BDFFED4A3DBE77FF3D103AC63D2C501EBC5DF88C3DD5AF3DBD5A99EDBDAB5D523DD78F913D14E4B43DEC2996BD760E28BD1AF358BCF35649BDCE2FBD3C1A69B1BC9BFE6EBCE7965DBDAB7041BCF026903D4AD0E73D5DA1563D43D584BC927223BD8C816D3D01792DBC8ACEC1BC449794BDB09377BDE1B754BE6029F9BDCA3D7EBD3AE790BD054F0F3D3A41B63D8740AFBC5CF6D8BC54ACF2BD232B0BBD015C253DBD8CC6BC0F42B8BC3D9824BDBD87E7BD83788DBD3A986F3DC5BEE5BCDE945EBEC1822ABD62BED1BDFB3BD6BD6A5E2EBDC0ABE33C2871A6BD6B842C3C175D753C140D86BD72EF133D2B54F43DE7DD983DAE5843BD129694BD718087BBFBC8B03D29B8F73DB20B473DAEF2A73BD7A880BD7ED40EBDC693A83BAB0CC73D0F38843D55AC413D8E6AC1BCC7272DBDBBA30FBC66C12A3CDA69AC3CA5E3F93DA4623D3D154A0D3D4E63373DF30C543D4C4F5DBC6D5E073E1194E63D71C182BD24D488BD5C2DB7BCD5DFAD3DE5DD1CBBF4CF4C3B9423783D7E9FD13D1201E1B811DDE03CA55F54BC413315BDF864A93DBA11003E70C2E33C882E073D7705AF3D2D06D93C0CBFA53D9796E1BCED492FBD164B8F3D625CD33BD34F52BCB92745BDD683093D5BCA053DE7C045BDB92D8D3D90ED193D95935ABD9FCD063D3138843D1DD9503D373631BD02444D3C2BC898BD767242BD4DAE283B08B462BD34D2D93C9ACE1C3C77EA02BDD39CB83C63CE183BEF44823B5BC9F83C543D8CBDB5D8D1BD38D4A4BD3B681EBADF43D3BC222805BD7AD3D83B1B03B2BD2D913CBD6C12A6BDCA2CB3BC487C30BC56532CBCA77DB8BC69A591BC187E95BC9670A8BB2B6239BD6F222F3DE25AF6BC523CE23C8ED37A3D43C6853B35173BBD7CBDB4BC0FDE8EBD236563BDD2E08A3AEFB75B3D6CD99BBC7A8B31BC715BE2BABC3B36BD5A0C2ABD373B79BDD97E33BC17059D3C9FD9683D48EF80BDC3E6573D40D00DBDF3436E3D6BA617BDF82249BD46BD83BD984B5B3D5FBB87BDBCDE2A3DA6675F3D5A6562BD3212373DCC9C3F3DC04C9FBD872784BD0831473DD58D3FBC39F0BB3DAD0D5FBC7718F4BBBEE051BDE9AD763B00014FBDE8283BBDFAB3663ACEF8AFBC5103D2BC6590C6BCD092763D9810B23DB3DE873D610E6CBDC62080BD2E58A0BD2149A1BC78C66DBCF5CD573B9253C83C343C2C3D94B3AB3CD24E773CD45E5E3DB0938F3D5EF10DBDEFBDD8BD109E5BBD301ECEBD941CEFBB1415B13C191E0DBBF82657BD03871CBCB1C61B3D515EA63D485AEB3D85490F3ED0E8C13D56A866BD154DE6BCF8E221BB4CA6CCBC711001BD7738B7BCAF04243D73AE693D97564CBDCFE72B3DCE2D94BBBF6FA93DA0A432BCF7AB87BDB295043B155C663C10E1D33CB455CC3D39F901BD74F767BD7D674ABC5A98FA3C82B74DBDC023123D9F4FB3BD7B09A83D79768DBD7851C5BDEFAB0CBED997DBBD57D4DF3DA61DD53D5CEAAFBC1A1764BD01DF46BCB7FC1E3D59E7063DE6EDA4BC408421BD206683BD22AB1E3C3428DFBD083928BE44DE8ABD107A2B3DFDA0063C6875C3BBE7C3833D911CD6BB251E3BBD7A0C4A3D380C393D13010CBD7A44CDBCF3A099BA5948A2BD948B9AB96819BF3D6432D53D0901003D5A36A03C511244BC85613D3DF084B43CFFF9773C54B0173DDD7033BCCB93C2BC085C4F3DCCBB8C3BD566FA3DE458523D2A3F9C3C7093BCBAC9364FBD049085BD36792B3DA5B19EBDC71309BDCE32023DBC61B0BA0BAC803DC55F37BDD36E613D1EEFDF3C0189843DDDCFC73CCCE2C83C96459FBD62070ABD41AC2F3D1ADCA13CE73684BD1BCF2C3D886A3F3D046E29BDBE128BBBFA3C793B7713D73CB968293B40D206BD00829CBCC16F0E3D385C673DD6AC5A3A70EF103D90D5113D85BC103C8D8516BD6034033D4A07953CFE5856BD69FED23BCA57183B267B193D8C7114BDE422C53CF50733BC4A179DBCD877B03C6E0F1A3D80AA823C4081CA3B3D8C2ABC46D899BC5001EE3C4F2FACBC4729403DBC11223D127397BD5264023CFDBD92BC8E3E893C708C4B3DD1EE2FBB7AFD2BBD457F9BBC057C32BDA5ECEC3B1FC98BBCA92C51BDDB81D4BD078399BC7FF4943D8AEEE9BAFE0C823CDE8D75BDC0C1403C4116333DBA4072BB6568D4BC3D6005BDD0270ABE71594BBD902D17BDAFC5743D15D4E23C82AA023E2E30853CB9AC1DBD9F98C43CDDAA803CC89D93BDD9574BBDFC3F63BD2BD988BDF6B992BDABF5B7BDC986CEBDB5F5CD3BE91EE3BA9DF6D53D442AA7BCD07F663B5B00433CF9644B3DFC914EBDD88D8EBD4190A6BD198D43BDCFF682BD1A30073DFEEE323D7EF4D73CB3688FBDD35B693D452ADF3D6EB6A33DDDC9823DF865E8BCA0FE2E3DF4BC93BDEAB0753CABCE35BCF45E743D3D55713E2D672D3E3BB585BCE0BCC4BDC5C3953CB89647BCE856543D46FAF7BCD00222BDFCA1BDBB8CE9963B366863BD9AA0F6BDACE9FDBC1B79C13D4270063EA36672BC8F352F3C3ADC93BD2C397D3CA5B2893D1E47E0BB78BC0EBDE77CA43BBC8E7CBD138F86BDD807E8BD716B83BD5B04D23B1C76EF3D335AD7BCC93FF2BD5E52BDBDB961D6BC3ED5763CC03CA8BC234799BD44DB84BCA9AD623D1BB248BD19EE9E3C4EE98D3DB6D3113DCA7595BCF3B69E3C88E474BD6BAF57BDF096243B503517BC8F09FB3CF4A43E3DC5037ABD54A9B73AF841743DFB1601BC7CB8AA3DEFA1F63CA21B5DBD0C2D4CBDE8062DBBB2CDE0BD5629ADBCC90122BDDA70ACBCAEDE7ABD18B9933B553756BD464C743DF962863C8BF606BDA7C5803D3726033D96109FBD2849B9BD46C4DEBDF25EBEBD080A29BCD97D6BBD0614013DCAD79DBDA3FCA1BD8BB7193CD588A83CADA5F73CBD2297BC2D6AD63D57AF3FBD4AB0143C7EFA253B1EE31BBC2651BD3BD6E636BD6695833C9CA84F3D593EA8BDB41D193D96CDEEBC92AB633C386F073D6604353C4D2E17BD95F132BD5A3007BCE0484CBDFB1979BD67EC95BDD7BB833DC1E391BDAB496FBD8187A83C6CB2163DD0915A3D7F0B3B3C7217553D4F9C45BD059C8F3C88197F3BB00F91BD92966A3D7CA0923C729DF33C0183083DDC6A8A3C8B5B26BDBDBD223D6E4FA63BA9B306BD1326163D2BF202BC2A42FE3BB169333DD2684D3D39053BBC599C69BB66A295BAA4A4EB3CE191BC3C41685B3D60EF0EBAA095B33C0D6C7B3D6F25F13D0C9A003E4A50CB3C79E6863D6269B13DEEBF5C3D668FE53902D29DBC2181833D061E213DE0E0443C475B273D7744C0BCEF33B9BCCEEF153DDA0ECBBCD97DFEBD76747FBD6C1296BDC30865BD2E083BBDDA7F183D8090603DE5B41A3D64A5EE3CA401FD3D86F7303BB0CB403CA45A85BC71E4273CD04F733C9B27363C079EDDBDC3D5BFBB274E67BD72CF81BD9B00633DC71DB13DEA91003EEF16AB3DA0C2F0BCF1B7863D8967183EB116073E1670DF3CC4BB813DF6E490BD0A2EAFBDB48B7BBD8A278FBD4E0BCD3DE6DD833BC4B8C0BC809D153DF871C8BD118B513D7AA9463EEDF3023E6EA3DA3DA15C1E3E377C9E3D09E5383D7136493D4BD42EBC6A4F86BC08C12ABD7A7A10BD7F9B9CBDE8F3D8BD890003BEC01B593D2D02AF3D0D44513DD579873D50A2133D05D04B3DC59C79BC62CBDBBC51CC473DD2DC81BDCD9575BD88B7C2BD7964A4BDA023B4BDDD42103BD546423D7079373D77A3963CDA6CCA3D1C26D9BCEAA6643DD643A6BC650C9E3D5E4495BDC7174CBD841FCD3B9A3371BD55308BBDFE5389BC0DB8CDBC5B6A013EF4F4233D7205933D3EA2DC3C8DB44A3D408792BC5624AC3C8E38C7BB68E3CF3CC3C17EBDFEBCA33D2273463DEFF2BBBDC586C93DC8AC0B3EB4D28F3D51EBCEBCCA77763C1170AE3CB28075BCC67AA73D6B234CBD388CB6BBFC4207BD6439FC3DDB5EED3DAFD3F43DBED278BC2219F93C0E688BBD17C7F0BD7A179BBDC6B49DBD5FD8DEBCB4803A3D9112E03C523DCA3B1A6854BB6BCAA7BAF97EF23CD26EF23DAC17E1BC91AB13BDE14715BE9ADC76BD620ADE3B02A82FBC18E0523D0FB2803CE0347E3C644CB43B34DC933C938EBD3DF7E2B43DD5A7B63DA6C5273C8850ACBD8AE3A93C778FA6BD9C659F3CBECDFD3CA617B73CD3A05C3D0168E43A4C6322BDF903043D602A523DF4A8B33CE32CB83DF692BD3DA1A61CBC2CAEAEBCF0E5E8BCE0800FBD7C9F89BDCCA4AABC4FA681BBE0E357BDF2E04FBDECF9853D6CF6543DB60954BD4F7125BDC9F6023D7114BC3C1DB72EBDC35B68BB2A0544BD59A7213B64AB33BDB8EAACBBD89B553A9B4921BDB6CD783D2B2E9ABC5471BB3CD9C923BCF5086BBD8F0480BB5A4312BD30F629BD46D4C6BBF03551BDFAC8EFBBA136BC3C03933D3D066442BDF11CC7BDDDA9A9BD7ED7A0BD43458BBDE53CB6BD4A03923C76B883BD205A53BD6CE59CBD55FC793DBB6F5F3D802E84BD16DE0CBD5BE90EBD16BC9CBCC8FA38BD2486903D81BE193ED688793D0E92C1BCC4CDAD3C2193D1BD3F8B24BCA4BEA1BCD06DED3B2E3F973B15EF44BD7CDC90BD8CD3BE39C156183D73AFF53DFB8C253E20E6EC3D269D8E3CB90D213DD7CFC23C79D0EE3CA909A0BCA25D0BBDB6EC0A3DF94DA43CFFFA8FBC2BD3C23D4D47BB3CE1707E3CB80CDD39B921663B9F678D3D5F7FD23C26F83B3DED8D043C6510663DD294DA3C4A668F3DD3B8A13D0CEFB43CD1E57A3B24C276BD09059E3A8CBB33BBB1E1113DBE928D3D0FFEE83D6380973D93FCE7BC60AEF43C8DE9E1BC786F23BDB3C5993D642388BD2F63BD3C4BC46B3CFA28AF3BFA181FBD14DEAE3ABF550BBD8D61D2BDF861B93B0602DA3B2DD30E3DA5B7363DBA04383DD3FB853C9E7D3EBD3367E63DE354D13C62BE03BDB06F9EBDD4940F3D33B625BC94F1C0BD74DFB13C8CDC473D6B587DBDABCC3C3D3C4CEFBCFD748CBDBEF5883D96BE063E4779323D324EA5BDB925C8BC603ADAB9D5D96FBD4156C5BDF1AA6D3DFABF983C3EDF74BCE09664BDFAFABB3CA5ABB53BDA0EE73CD21E823D9E87FABC38EFE5BDB4BF92BD88F2093BE34E21BD574A9ABDBC9C1EBDCC46873D8960F1BC7DC7F63C1190B2BCEC03193BA9075BBC1129C43C70FEE9BCAE5A833DE82420BDE580F1BDB98666BC0D70A93C1871A1BCDD8F6BBCA2D0803D0AD7F9BB559C343D901D743D8399C43CA687493D0BE9A0BC6504C5BB4F6AAABB8DD47E3B9578FC3C5786943DA6272FBDD415573D03BD8E3DE0AE4D3D55D0663D5401873D94DE39BB210A4DBB5EF0E1BCC9D2BF3DA756683D05EB2A3DDE6A4DBA1290FA3CCE831EBDC8FC83BDA87EA1BC23C0B13C098A6FBD1C638A3D1F11B73CBB6700BD76C0823BD7CCBABC4E7D5A3D648151BD5967813D91C413BD224A853D57A22EBD55DF56BD411AD3BC2A5307BBF93CC5BCBA0782BDCC3A7ABDA4FA583D18C3B7BD41AA96BC204FD2BD77CDE53CBED890BDAFDD5A3DB9295C3D1FDD75BDDDAEEFBC960ECFBC4F9F1F3D31EEBFBC4A0B5F3AF1F912BD50768BBC35B7DC3CF377CABD8C5A52BC6030CA3C499C7FBBA540E73C5A39EDBC488D0ABD4BD6443D54E4D7BCC71A0EBD6CC8D7BD0C74CDBD2FF053BC5281EE3DB0E0553D10079F3DA5A35EBD637C373D454BE3BC35A0653DD10359BCCB7E423DBA2ECFBDD32CDDBDF5B52EBDE13282BC7893B0BCEB01A33C92778DBCED811CBD839BE43B2C39273DC3D0493D10DEA33BC80D24BDD9E78A3CF83BC33C32A162BC40BEE43DDAB9BF3C3AF534BDA9D1A8BDE22E8EBD16758ABBC21030BD4CD80E3D800F313D1EEF733D658F333D66D822BDBA6485BD272F823D88567E3D5A32B53D68762A3E45A8323EB172703DF136E53CFFFDB03CAACF2ABD91D586BCB7DEC53CDC5587BD9175153D26D55F3D88349BBCD5438E3DF0A0B73DBCB0693E5B0FA03D471910BC9F3C90BCB7E5D8BDD0A87BBDFA75A43B073704BD4CA4403DCC3DF73CF30ABDBC8F3E20BDD3C0A9BB599D633DCD530F3DE3BB1B3D3866A1BDC4D65DBDBC03E2BDAFEE4FBB32D992BCF3ED0DBDCA05CFBC272BC3BC1CF5A3BCD7E003BDAA6CA5BD28D7E6BD811762BC0A903E3DCB1C86BD29DCC2BDBBA2D9BC7518CFBC202F9D3BD0A5DE3C0983533D259486BC7BDF5EBD601E82BDCE6F38BD1080FFBD4846EDBD405D57BCE75D433DA314493DF348A03CA9B68A3DD2EA493B669E42BDEBEE893C0A3789BB7749D6BBEF0798BD9D58E7BCC414CEBDF878F83CD03B86BDEBB29ABDD6194B3D630B063D7BBC043CA2B62C3D9B3F723DDDC4853D1159C9BAC6E137BC23E0BF3CDE90183DD33110BD4EF204BDFC62C1BC452B8E3C859C79BC0BA2CD3D8F9D743C4F780D3D36808B3D8D32113D7A9EAABC5FCD803DA4CB0C3C65BB43BD9F3F363D43B389BD82239A3C554873BD096C743D735054BD13889FBCE559693D3745B03C87909DBD179A93BDD77378BDDDC40A3DC43085BD0CA11FBCB20342BD99F0473D5F3F173D261D0ABD102B0CBD0E3039BDDB8227BD25071CBDAAB689BCD8F6293D784D89BD4CD9913CD61C99BD8F92EBBC9E3526BDF0711F3D2E41163D881F0CBC4F183FBD9F6B12BD7B3D92BD52B98CBBB7BA0B3D61388CBC7F65D43C4739FEBC1EFFDE3C7811B3BCEB36BC3CFD270C3E40E0203E5F82CC3D6AC4C83C31E5A83C129A61BD6B3194BCD34F04BD080AEC3CD01B97BD56AB823CA7F581BC75DAC0BDDA57B9BCCB023A3D62882BBDBC771A3D1C6B9C3D74550EBCF042AA3B4341E63C3B412ABDA5CA7ABDD278A03B4E5E2FBDF511DFBCE059B6BCE2747DBD7C2FF3BCE87A87BCF18C793DC23B48BC65046A3DF4E1E4BD6536C43943676C3D2AF3463CEA53E0BB3515FFBCF42C04BD8712CD3D4B924BBD8E21D9BDFC67C7BDA31FBB3C3E03B0BC719FBEBB51CE673D240D13BD20C997BCB9FE4BBC4306353DD2DE03BD5DD487BC0B032D3DDD3D1ABDFCEA68BE2F3023BD53B8D3BDC0F3DC3DFB09283E6624903D9698453DFBB598BD243DD13C10248ABC61EB323E9B99AA3D2942353ED6A84B3D3FBA9DBD92B186BC9FF2913DD6C5D83BB92FDC3D0248D73D15467EBCCF8931BC92491FBC00D1BB3D7C7F013E7F5C1F3E8303CD3DB362B93C1D72753D05DCB83C1C58163DDA35943D2A0C1F3CF10C9B3D594880BDBEA61D3DF529A2BDBDBA773D1C102BBC3FC2093D58FF273EE4C6843D6AE56F3B08DD8A3CCEC7B43DBE4D093D1F636FBD8AF6FABB05B758BC235933BD2599C1BC0E0367BD2A62B2BC5A19283D4691F13D464606BC3DBE7E3D30F194BCA468863CBDF8353C6B94A1BC2A2C753C527A2D3DF3C7243D9A601BBD1C7990BD7A8B1B3D58BE863C210401BD305A37BC0B11183D43B92F3DB5AE1A3CFE21253D2BC0833D8971DB3B54433C3DA7E5773DC767563D01A7113D69EFEEBD5967ADBD260854BD8A2FD4BCB3178ABD728A4ABD2D0BC7BB71DC70BD39B6543DE45C9BBD25E80E3D0FCC403D46D4883C78BA513D0B671B3D2A0DE3BCF008FFBA319F80BD9335EEBC42BA1EBC016F923CDACB88BD59C82B3D9A2577BCF5C1323DF80F4E3DA7474DBC147840BD83D1B8BC9D3DBA3CA1F4133D2D0565BD02DA95BDC06A93BD4386903C295D0D3DF5924F3DCB8CA4BC5DAB5C3C4C00C439E9D4B1BCEC5384BD418CA8BBC27A4DBD8EB1313C8045DFBB0F23D13A761E143D8BB3933C3076D73C9050463DDE7093BDF57EC73CBE90183D0A2469BC3948023C86E6B3BDE83986BC3B70B3BDBF1B08BECAB8E5BD39047BBD7DA9C0BCE1BB1BBDF690EEBC99D1053DB50512BD1E2F8ABD1E0FC53CD8EDA9BCA7FA34BD2381FFBD975918BED814D3BDF3FE6CBDBDE93EBD3ED730BB34F3103DEF29573C74A5443C2F2E633C449BA4BDFD73AABC822DEE3CB196BABDE71BC5BD5507E7BD650970BDA80C323E9566123E61420F3E9B1A0E3EFF3DB93D5F3C273E70AED33CF35C5EBDB7543DBD84336CBD2CE96FBD07F93FBE79A4A3BD6C6A743DF023593E27FF1DBD904E9DBC4C97AEBDFFEA03BD945E823DDF91983CBE8CA6BD54EF7CBD140B8BBD66F91CBD7DA88BBD4FEC273D38A92D3EC8DB793D55B5E8BD9B4B97BDCC0801BE8D7E86BD5DAEA73C571D46BD754378BC487D5C3D67046F3C499D06BEF7A603BE506E843DD78A8E3DDB5D93BDCF8E4DBD8F271C3CFD253FBEB4CA99BDE71428BB0B751CBC99C805BC350FFE3C6FA7063DC29F34BD0A810BBEABECDEBDD27442BCE04D183AEEEDA63DC9DB3B3D0E9105BE8E307CBD58BD80BD14DB28BD6D9C223DA096183C0A635B3D1605A43D2F20B9BD338B9CBCF236F93BE386D43D9956E93D9FA5543C128F20BEA94CB2BDC5B1B7BDE151713C4D90D13CDECED93CFA5CE2BC6084313D7D662C3DFD7FE43DB780C93DE92F903D1A8FB2BC202DACBDE032D5BD72E587BCE5A7ABBD8A1407BC21CF533D568589BD2DA4803DD0B219BD1E51E63DCE51C3BC9B894D3DDB2183BB66500BBE5B2D0FBEE5EC72BCD8695CBDF484D13C092B43BD5525943B0A6C413B8ABAB1BCDC40F43C4D2A433D8CB59FB929518FBDBFB9F8BD84063FBD91B1053DC8A5B43C8A738DBDA499C6BCE28F61BDE14775BC91FBF13C791A78BDAA6632BC0EB4F0BB6F3ECC3C438767BBD06BF2BC2C324B3D4CD72FBD9ABC4CBD49B9B7BC6B05CC3C50E04DBD6DFA253D65560FBD7812573C8297143DCF44AABDA4D3143D952921BD38B1C93C4B908C3B642409BD3B6272BDD3BB06BC75A1943CCC18E63CC17C133D6E0B0C3D18D7B3BD715D463DC28B9BBB7CDE47BD682D56BC5F41D43D6244FBBCB92FE9BC7339DABDA096F3BDF628423C5F729BBD542F36BC841A593D7100573D2365053D92CDD9BCBC2156BD6985633C59D23A3CE1C7223DF380CCBDD6E62ABE31F193BDC131B8BDE0C2DBBCA01273BD9FCD4B3D11E60E3D0C91993DB9E5003EF665053E9900C03DEEE162BC0B1F5E3D89E46A3D2A86823DDECB3BBD856698BDF5A865BDF4F3A5BD4BB77C3D8C81723D895FA03DC0038C3D8767963D8EA60C3DCB06243E110C593EE63E933D4197713DCB26773D473C80BD0F2A3ABD2441F1BB7E058E3DC3069EBCFCC826BE05B334BE164D29BEED41263C34AB9F3D595ABA3DBEC9EE3C45A447BC67253EBE2925E0BBE6FA20BD4C6433BD1BBFECBCCFD320BE86B631BEC9C2C9BDC0683CBEC5D308BEA6D344BDC1E207BBE2CC25BDA01A42BD8EAB11BE60170FBDD4469CBD455F5ABDFB518FBD2344F3BC7CF431BEC7F909BE2178B6BD49FD80BDD5ED823DDF9C483B95EA4F3DE49F3A3C8186BABCA66326BD4E7C173D1E5884BCC457473D63D8C93CFF47D6BD4FA821BE375734BE5ED12EBD1314E93CA952833C7073B63DB3ECF43D9DDA8D3DA11D253D1B8B4EBD919CDD3C2C7FC43B54CDA63CB5DA693D729D563C06D372BCDEBE893CCF17CCBC7BB2143D75F7A83D72B5AF3DDA4FE13D645FCD3A3E1C503C61624EBD1CB6FD3B564EC33D19F3ED3D237E0B3ED3D7863DA0B54D3C453DD7BBA3DD993BEA55063C9C54E9BCDC34AC3DB099BD3CDF50CF3B9B820CBDBF97893D35F0663D4EE57E3DBEE2AA3D6BB2DF3CAF4856BCCC3F4ABCE6DE4D3C098025BCDC3C4EBD94CD34BDCD3B293DD570E03CB279DDBC0BBE24BC49A1D6BCC8E7D33DE94CA9BCB023A73D087EDF3DD062AE3D16A8E93C2DC806BE3D8D97BD11298CBDE5C3123CA5D7A7BDE53883BD7884073C11C96C3AFEAD90BD4689833DF198863D8CF6033D5E08403D07A60DBD9C05AEBD61A89FBD91E394BDE5AC87BD334969BD8F596D3DC25BA3BD485B563D6272543D5C088A3A78F3CBBB01FF603CAABEDBBA608988BD351B89BD599B6F3D519C0DBDA70DEA3CBB428D3C8F9E39BDA02780BC26F7BBBCA648613DB7A139BC77C41BBCF4D3BDBD3688A1BD56E3A8BDFA1DBD3C5ECE73BDC47DB53C517CAA3C090F313B89CB01BDD902073D014083BD9143873C705C8EBD5815FCBDB14273BC68851CBDD582673DB9DC59BD21CF7D3D0FF53B3D5BCC8CBD60737F3C2BDB09BD4C0E853C4F542FBCF50F9CBD054C44BD1A9799BD1ADD08BD8A8C9BBDFE5734BD1CF50DBC78FA3BBDA6BC8B3D90E0E93C292637BD35FB6C3D11EC003CF3FB093C2E3C05BDCDCBFCBD4E71283D0BDF583D8F2ACABC3607F03C7FBF22BDA92EE03D416DD63DB4040A3E22A96C3CDA195EBDE748FABA6D7885BD7E8604BD38A89DBD973055BDCA04303E5438103C669A6C3DC9777DBDAF39B8BD3D24433B94EA0ABCB29F653D35EB033DE432653D8FE2CFBA232983BD606DC9BC30F7BABCF4E79B3DB039183DC1208DBD66209CBCB27F21BE79661BBE44AC38BD8E88743D179762BDE58F11BC162880BD59B6BA3C51298ABDE6DEBCBD8AAF8B3C3472F0B9AA62C63DFF6C943C43052CBDCF3CE7BCBCC886BDB500503DC5A7CDBB1C3C84BD082A7F3B51988DBDDF8B56BD72AFDFBD204701BD1005963DCAF442BDE62D313D3408D03BB3581FBD417547BD5F310ABD13210EBD621245BC9F3D3F3DF5A07C3D5E244EBCC5F4963C861BF6BCAB56593DB374943D69B6BFBC4962B4BD3FF878BDBF8F74BDECA65A3DBFCC9FBD714B7BBD08AAF3BC34A96B3CD82B35BD5D43603D367B8B3C188BB13DFED9C5BCD5305ABDE7C5F4BD555019BC4D6E0B3C809F8DBDC15EA5BD5134063D79D7ACBB5C32153C0EAE923C1E0882BD420BA4BC8B52F3BB187ED83A1219A0BC7D24D5BB6F8EE2BC58F0A3BD7A8566BC697C1C3DA971493CFD80BA3CE61C83BDFE6580BD86C74EBD152B24BC018807BDB79D223C7EDED9BC41623BBC32EB73BC2A1755BB4C72FDBCB9D99FBDEBA5DF3B669E3CBCE12C4BBDAE35A5BD59ACACBC200DA3BD7B97EABC5BE2363C65FD72BC8547073D7ED0573DB93AB0BC61D766BDC0364DBD1A50C63C2992B5BBBA88A83D0D21323B44C99C3C48035B3DA76A143D229BAB3AA86F5A3DA101C3BCE6281FBD8EB7843D2852533B97722A3C01CA8FBAEFFD1CBC3690B4BCB593483D268F793D860452BCC288D93D61599CBB246255BDE034B33C20973EBA83A721BD82051ABD841F29BD72040C3C20233ABDDBBA1C3DC98DB6BC3EC09B3DB148BA3DABB15E3C02C49A3D0DDE193DE341373C6396F9BDB7A5DA3C6C3C8D3CD12FFEBC6C87AA3CDB0C133D32A13A3D4C20F2BC2134BD3D1371A73D29C24F3E3E73E63DA4A3E63B273B8D3B697807BDA9E1ACBDDA7DFBBCE681F0BBB3ED01BD51F4D13C67049FBC0F99903C507D5A3D03B45B3BB94BF93D476E8FBCFB3845BC20BE6C39024294BDE6A95D3BAD7C043CB422B03CDF814FBC0B5C7E3D17614E3D7E7B533DE6CFA1BD680E8CBB551E60BDCFFE91BD19BC6B3D017A0A3E1F3C1C3E8284B9BC4EF297BBE604903D0FFF34BDB4C3B93CDA68B5BCE9D12BBD5817D1BD5AF4EE3C99BAB43DBD94673DD1D5CE3D9E20CE3D1AB0873D4C8AA63D7BEE1FBD22D5363DD6F2AD3C73913C3DA5E6D5BDA47EB1BD2C732A3DEB00BA3DD52FF13D22B7BC3CFFC94ABDC84A26BE9F52DBBDA6DCB1BCBF4C863DF69BACBB80B6A03D2B2149BD201562BD6A9DCF3D03FF153EF27AB5BC8BF79EBDF626883D9A90BABD6284C6BDC07F84BCA03ABA3CFA85853C1531AE3CCC98B53A08CD9B3DC378823D2820203E2FBB153EFC4BBA3CE53891BB32922E3DD4BF133DD2C8B13D9BBDA7BB8C65DA3D9092BA3C8E6C49BD98456B3DA1D6833DC80E4C3D99AAC03C3CF782BD0C464B3D84ECB6BCD666CDBCE828813A2AE4BB3CFB0FE23C83930EBDC11183BCA62B2A3B3F9729BD5287983CEC62603C6499F23B98700A3C5BDA1B3D2673663D8E0E073D9FB2303D5BB0C4BC36BAD13B0F1CBCBCA2C0013D146906BD1171043D6418B9BBA362D6BC9E2CCABC2E2483BC620611BD680DE13B7DE65DBC1FCBB53C2BD589BC286D0E3DF0EE02BD2C91913CC09649BD3ECAE03C79CE9B3DF68C5DBDF4943B3D614D80BCD70E9A3DDC8F01BD2DD3A03DDFDA963D34E6C63D3AC2033DE43AC43C3AB608BD398D853DF3BEE03B83C2723D71D81A3DE25F78BDBAA1813D80BDDEBA8DD5A63CC3AA2CBD1FDBFA3C25899FBCB6EE99BC5986723AA76D153D7A77C83C2B320A3C528F343DCB75723D67B12FBDE39896BC2D9951BCF7A5DCBC7E071BBDC1329ABC18298EBD6C656CBD2D663DBDF9CD83BD0B182DBD8832A1BCAF24B7BB4B55313D802009BC0A70FDBB38EDB93CE5A20F3EB38D6E3EA82A2D3E23259A3DB9B181BB23A6533D5465C7BCF8960C3BBB0BFEBC0E6F3BBDE8316A3DC37F163DBA6D3C3D55CADA3C67E815BEC8E683BDD811043EEC81163EAE14923DF748B8BDA83B28BADB23253DECD001BC586EA83D4359A2BC5B0AE5BC1F02183DD3F4E1BDE7F3DDBD1D0CEC3D8498973E2428DF3D2D534D3CFD7113BEAE728EBBF56964BD6FFA2CBD269856BC363C7BBCE1D5ABBD8BF723BD35E83DBE0E3334BE1587253EB27D1D3EFDACCC3D1F9AB8BC035413BD91CFCCBB4E4724BD4BF72E3A631FC0BD63A5DEBD411562BD1FB8AABD6668B6BD6C1840BE5390A93D8805B13D6BCE6DBDD4AD5FBDEA2B9FBD4ED75ABD4A380E3D669BDE3C54BFA83D5649F33C7D0C55BDD5407E3D4221503DC487B4BCCD78903CB024F63B6D5219BD656C433C5D784CBD12A5DCBC1C793CBC436E48BC221EDD3DA763003C32E8B6BCD61F7E3DD940053DD3563A3D88D05B3D8337A7BD35F333BD5CB5A0BCD0BA1FBA12628F3D204E863D1FF0C4BC9830643D387E983DE317663C73FBBB3D089CDE3DBEB0CEBC9B16ACBC655FB9BD369CA5BD8B191A3DFF777B3D59972ABC18E536BDB7CD5A3D48528A3CEACAC33CBC1F753D5E82D5BC2DE199BDB27C88BDE7019ABC34BA9DBD92E9E23B7E7E1E3D64157A3C0997453D410B403D23414ABD603EA93CD23EEC3DBBF7EE3D77C3983DD683EF3DE98FA73DB2BAEC3BE97927BCF5F284BD081E31BD858D2E3D863F8A3A9DCA033DC9B7AB3C650E25BD6575C93C8C938ABD556A3BBDB1437F3D817CD13CD007823D5D07D6BD286604BD7D08EB3C1B39383D7F3807BD1B9C17BDE18887BCB0CC17BD6307FD3C60E547BD6770A6BD6080B33C380896BDB7FDCCBC403C6CBD135032BD3E803F3CD1272ABC14F2BCBC3D4C6EBDBBCCCF3CB7837ABD9F8CA4BC7B4025BD10D1D8BC76CD8C3DC95C26BC5AA2853C12A75BBD64642D3C52D6E23A6FF856BDE39285BDDAE0093DC1B431BD64D5B4BC3D59DF3C3464C93CD8BFE93C802C6EBD260B79BDBE89DC3C0172813DF42583BDCA263B3DBE22B03CFF75E73B6766C8BBDFF3FEBBA69DF3BC99FED2BCB2B199BC6B1444BD46AC1D3C2F84D43D5DE9113BB78CA3BC646A923CBBAF2F3DB1050E3CC6E628BDAB18DDBC655744BDCF7CBA3DE07EAB3D274A1D3D94B04EBCFC8BD93B926951BDA639A8BD876A343D31D34CBD4033E03C4CB429BDA0778F3D7D1F87BD92CA753D29DBCF3DCAB6143DFC04373D8699ADBC19DB68BD318C71BDA329E13A80BA6CBC3B5ECABCA83AF4BC6BAD853D8B3DBB3C0A33ECBCF7F63A3D0580E8BCBFB5B3BCB2B796BC1AD9453D04B4F23D2EDF203E445C173E11FB1B3CDCB0A63C6E3B8D3D015A613D0CB0723D3E8B86BB6BB3383DFF80153D551A0DBD675DAE3D4BEAC43D497CE23DA4DB393E4E72223E4B31CA3DCDB8B73ADF1BC8BBF9BF67BD36FD56BDC7B6123C3CDD943DCA139FBCE40CDEBCF4EEBABD192B7FBB8BBC933C211D433ED04C0A3EDE8CE6BCBD88D5BC183C373DD53CBE3C741F31BD43967B3D5C993B3D486214BD0E75333C0D7702BEF6015EBC97C64D3DDA40B63DB4605FBC64411CBDA789843D96923DBA070F8ABDAD9A78BD357430BCF260243DA997DEBCFD985FBDFC445A3C74F2A2BD4AFEA1BDBF4997BD4C83EEBD3E9C713BC34B00BD34E819BD91D4B5BD187359BDFD408ABCD57A593D9F53953D7D95753D3E0215BD3F1BC7BD03D1C9BCD912C6BC47B477BD47118BBD63BDC13B957AADBD256CA8BD397C553D3B2358BC8C2244BDEC062ABC1744983DC58E34BD4F80B03D9BEAE93D5EC33C3D9656183D3B2A973C06C5343C9EAA4BBD505C273D8425113D1BAD3E3D7ED9A4BA1992DFBBCC4A06BD9A59CABC3CF5863A6CD28CBC628C1F3DD781B43DFD264C3C7C8C90BC1C98C5BCAD85863D9E1F513DE14C6FBDC611333D6BC055BCCAD41DBDAD33033D6DAB2A3D64327B3D0ACB15BC0DD0AD3CF0EA99B72855543D62A23EBDC16F88BD458DCB3C449E853C43D7093DD33A3D3DA34A11BC10B04CBDB5B978BC77D4DE3B4A373EBDDCFF8B3CA403543D83B59ABB7F9B0B3D21FF223DD4A0983D761C943B64FEAABBA0145B3CADFA8BBCF9E8953D127EFF3C84A72DBDCBBBEEBCFE0331BCA53C323D0275DD3C54C8743DD532833DA802D9BBFAAA023B650E903D01A5C6BB2C0D2B3DFCB03EBD9651DC3BD2ABD83C7D7395BD7B9BDBBCCD701D3B7ED600BD95BBA63D27FF2C3C226A083D868C84BDFC2C39BD44AA17BD9913A9BC03CA6CBD16FF133B674DF13C3379F9BC234492BB56C16F3CB57D9FBC62B948BD0F71853D4D2A23BC8F603D3D404A71BD228A18BDCB1D0BBD1B0DB23C7F947F3D0CD10E3DCF6FF8BD2469BCBC3C7685BD8C3569BD61B84C3D73F0AE3DEA963C3D9320773C308BE8BA513E21BD1C910A3CEC71193DD3C9063C599CE93D78E718BD9D07BDBCC41F213D845D8A3D24A74E3D1D9A703D84176EBD7E238D3D4839833D45B48F3DCA00C93DEC279C3D3928CA3DB022C53DBA5D4F3B402531BCBDA576BD8EEDCB3C3C15C83D5F2285BCAD83DABC78B9CCB846B6793D05959B3D3919973D8B10173D053C1B3CFAA9ABBB71B538BC2937D3BC59648A3CC6955CBDCE6C603CA4858BBCB70B733D175C84BDC58633BD5374073D487577BB7F7C873BCEC4D73CD4E510BBF0B5A8BC79641B3CE4D3833DF62A8FBCA80BEE3CEDAC6ABD944045BDEBFBF7BC427CD13CD2F934BDB23911BD0E69CC3DE01F983D4EA353BB205F38BA3EFA363DB56D953D1341883D57B490BC0C291A3D19E5A53C86850D3C541787BDAE1E2F3DFD08B93C9B5C853D36199D3D28CBE33D0C1DE73DA5844D3D00FFB13CF34B68BD7059ABBC9CC95FBD8BAE833D7984AB3C0A0A64BDF21D23BD9A1E4CBD6CF3213D488D883D2052FD3D7415C83DB4FE7ABDF458F93BA22727BD361304BCAF1FA2BC31E1DA3C94A89C3DD42F8A3D7E1628BD3988223D2127E2BC85010A3C08346FBC2C8B6FBD5E3CE5BC400517BC52B566BDD5502A3D8C2C7CBBC461C13C5DB259BD6B83813CDD1289BCAD9D62BD1B6F1BBB4B238FBD5FFF81BD89B0F5BCCFC1703DBB0691BC073600BCAE3AA03C1CC09A3DE090983D032121BDCE2184BCBDF8A4BD96712BBDD83A003D3453A7BD27EC84BD3FF16F3C05B19FBD15B737BDD58992BD3661A3BD857009BD62E4473B79C34CBDFF1E48BD57AF01BDCCE905BD72639F3D2629663D2B7F43BC96E831BC693A033ECD168D3DF204223C34F08B3D6C56C8BCC9DC03BC7D9EB2BD7ABEA7BD697AAFBD69150D3D894DD73D178FD43C9AD2AF3D59D5273E603CF83D430EBC3D2A1C693D07561C3DEB9F5F3D4245013DED6BAFBD99560B3C6C3F4FBDB099923D00421CBD921CCCBDD8D13DBD6569F0BD071FB8BD835A5DBD84D534BCD2D52CBD7C0CEE3C299923BDB8CFF83CDFAB9E3B63A833BD5452BF3A1AB735BC6F6F3BBDE0D502BD32ECA8BDF4CAABBD79012FBE68C895BD3DCBA3BD973BD9BAAED6B63CD2F906BDBB29253DA989C4BCD1E7A03CF11016BDE49FF8BD36C239BC01704C3D6E18D9BCCB2D0FBE9E5504BE95B052BC488FA6BDB872AC3A538E563DA67E7CBDCDCFECBD15EE42BCCABF7FBDB17072BA11FBC43D9A95063E381F393DEB09C9BD8C6C053CEE1A9CBD18204DBDB14DE43BCFB761BC7464443D0BBEADBD5F91D2BDF2B936BDB62C943C6A8BCA3DFC8D1B3E1A86443D5C3C173CEAEEBFBCA5C96ABCB37C87BBEDFF25BD9AF9A6BC417D8D3C887430BD1B499ABCF1FCDABDAFC52D3DE4E5093EC1D78F3DE4B47FBA4601F63BC9B9963D1D27CA3DA80B653D30E54DBD0155A9BD76C4C3BC6EC1EA3CCE6E7D3D4658B73D520D80BB58AB0B3E44CDD73D021D813D79CEB03D1581113E34FB243D3522D13C21C4293CFE0EFB39CA83893B03C6883D08FB643D1F961C3ED13B513D6727083E7741A73DB7B0B33D8B70153E5BBAAA3DB4FE023E4208863D0D74543CF9B59CBC00F35F3DDB6A17BD855DA83DC6EB133D4938AD3BD903BD3C74BCB6BB7BA4343D1D96B73D07532DBCD94D883DF99470BCC037263CF70F80BDF78D3F3D8F1455BCF252ECBDB04E26BDA35EB0BDF3657FBDA7F264BDBF212CBDB94DC0BD03BBE63C4194A63C2912B0BC5682A0BD118183BD2F8551BD386ED33C6CDA9CBDCE179BBD9B80ACBD5789F2BD58A9FFBCC4AAECBC5B92D6BD37EBE73C27CD6ABCFB6E70BD2A0F3EBCBCB3BE3CC688F03CC7A008BDE4E99F3D0A9A823D62BE913D9AFA823B55E6D53B59E940BD681F973D058B68BB1E112ABC06C433BC6BA81EBD9D6453BDF0C2B03B89D551BDCF8FFABC0969563D611CBF3C50758DBD4D3905BD3A2238BDCD3FF93B603561BCBC3E073DA964D13CCAF4BA3C0788603DAAF4083D9E718CBD329C663D12365DBD2065513D0514233D1B4BC83DB31D8F3CF0872FBAB8C3B0BCB5D47B3DD9122CBD15535E3DC87D5BBD41C6E43CB7EF88BD7D3371BD54A0ABBBB15D4E3B92527CBC8C60E8BC8329CABC29A89B3CF924BA3CEB85FA3C45EB54BD7BDEC0BC7050143D3E39613DEF4C043DF8528CBC4ED6373CCE0616BA70A740BC7A7D04BDC6F7203CCF52BA3A60DC453C86C6333CC0FC743DEC6789BCF2A97C3C5D23833A902B2BBDD6AEE43CF66AAE3D26D6913D43C3863D5CC4B83CCC29C1BD1FB0943C75C5D83C6978DD3CC23ED53D2097193DBC318A3D9FF255BD771DD43C3556A3BD77283BBD96DCE9BC947BAD3D9E65A23D0F620B3D58CB4EBD86060EBC38FB893C3A03F43C8C65B03CEE10E2BCE58B763DE46DA3BDB50DADBCF2C219BE8F3CF0BD633F8F3D4E6A093E58029DBCE799C9BDC2A0F1BC6EB74BBBEB517E3D675F7E3D26DD84BC68B7CC3CC3EB90BD29E9CF3C6DF82EBCA1D7DB3D29BF9A3CA8B0DE3C79DA88BD17D2D9BC1DA78EBCB08892BD17E229BDE2D4E1BCAB8422BDFE7252B93CE348BD5104863C620DEC3D14550B3CF10231BACFE10CBC59A3E1BDDAF1A6BD818C80BD442D953C9AD781BD4A6C863CCAD39F3D3154FFBAEBA22E3DEB63A23DD83225BDB77F193C2261593C685800BC233343BDED1FA53DDD443ABD682B8D3DB5FA5DBDE22F563C4639893D5240E2BBE8248DBDD6C2CBBCAB5A453D346B9DBC6E56983DFE359C3D7411E13DC95F003DB64A583DE8A35B3CBF964F3D8B73753C9CFF8B3D3386983D9EE2A1BD1AA814BCE2D6DEBB55540EBDAAB33BBCCBB5433DB2A2C23B5B30C83D57D2703DA53D2D3DF4142ABDEB5F9A3DC1F8723D2007BC3BF2DA59BD75D17ABCAFB2403D43DE5DBDF49E733C521540BDF1271DBC13ED033D9680373D2A6605BD47042DBDECBC683C64B1CDBB993B5EBD8FA4C2BC616984BDC61F9D3BFE8B383D822974BCB20E043C0AE0983CBD4205BD131D6B3DF8EAB43B3F25273DA1093EBD05E35A3CD37584BDC51659BC4FC3BA3C6CF81CBDB5D21EBD7D8D6DBD1ED329BDB151FF3C6C3E9B3CB4AA80BC99F1F83CB5AD41BD81A052BD520084BC23E8EFBCDDA08ABB4423683B0CC59DBDFDEB12BD2CD68EBCDB64DDBC45782C3D7288803C16DA223C93C9BFBCF0B1703D226183BDC3431EBDD9B180BDC0854D3C8F6A56BD9ECEC5BB2A248BBDCAC193BDC39088BC56D8303D304D273DEBA537BDB08992BC99DE70BDF4469CBA543517BD56343BBD0BAC693CBC3CE83C2468C53CB0DD5C3D81269F3D848AA53D4C26C83DA790A5BC62AD453D23372BBD909B12BD363F7DBDBD3D6CBD867B40BDC02C173CB92E663D92F4923D6ECDEB3DFF0B4EBC167FC03C2FC19C3D846EA63CBCF69B3C3CAB0D3E9BF47ABD5D4261BDC02C1ABDFE79843D71FA703D065AED3BD616F43C5944F8BD71CE15BE2DB697BDC930EDBC06E2B93C462C083E40F4743E0A3A493D543D6C3D3789D5BB7C1940BDDC44493BD1D4013DF495DCBB886C0FBCE80FF9BD17575E3DD592153D74AE8DBCDF252FBD45129E3D68402F3D970F16BDDADA21BD8B5DA5BD8987C2BC4305D13C25B8043E08B60F3E7BD7A73C4E5FCC3C655A1A3DC2D0093DD09E2FB95D4F163D82CA4DBD60F7E33BD3A62F3B34079A3BC632CEBDCA69E2BD1854953D6225093E9233123EFDDEA3BD416EDDBDFD3830BBD210EB3BB60F0CBDF799E1BB007E8C3D6BDA86BD321433BDD41280BB17DAB9BB86B2B4BCF57D893D3849A33C12580C3CB99D1FBBC33327BD7B36C1BD513DE7BDB346D9BA1F2068BDF580913C43C39EBD939D2B3C87E48DBDA134983C3BD8883DF8D8053E9314EE3D612306BC5BF646BCA8B4A9BD0904C73CB79F643DA412FFBC9E1EFD3CA16FBFBCA7BDC73C3F27533D217D55BD1464B7BCCFDD49BD4C3249BD2672583D263E933C99B95DBD025F963C9DCA5E3D067B41BD2B22F63C8E2807BD96E6823C1DD056BDD13914BC6434283DA9720FBDA82488BB5E7C863D8FB6CABCFBFE643DD0AE8F3C7286E43C5361023DC531D8BCABB976BDF90E77BD1ED372BD989F14BDA5F1A23CF7C062BD8DFA4BBD4CEBBA3C09F164BC6999003DA5D52E3C72AC2FBB0F8771BD7C79D43C009A953CCC9125BD1A13AC3CC6C3693DD499EA3AE3E92D3C127509BBF08D693CDFB820BDC0ED903C81BA4ABD5B7669BDC861733DE4CC573D1FBA843DCE4333BDC99E743D42D080BD29121DBD31EB3E3C1EE9293DF2B08EBD9C1B3C3D106A38BBAB39A23CCDFAADBB421A893DA4BD2D3A26A2F43BF51ED4BC5EFB1EBD8B96393D1FFEC8BC3B3692BC61C7A03C6F2486BD30FBEE3C4D272A3D193A723D37739A3ABD2930BD54E64B3DAC18293D5C20863DCAEA6DBDF0A030BDFBEB8EBD14373EBDB3CC823D668D8BBDBECF033D337AD238AC269E3DD72AA03D6874863C7A41F0BC63071B3DAB30093D3DE5ADBCB1A179BD35B0843C3EDC04BC93EBEEBC7BD68F3C9F1D763DFEF968BDD6A6443DE0CA5BBB685CD2BBBDDC823D1CB7993A805206BD762182BCF8D4F0BB45F90ABDA0F222BD8411EC3C7C7F90BD9C2CA2BCF9CE4B3D6734F2BBDE09B6BC00B9C2BCBBDA98BCAA8F56BDB18780BD066C4CBB1780D93CFB96693DA490E2BB971A4DBD7CB5113DA93679BD9403A53CB5301D3DE5C83FBCF7A8133D24117DBD8C04E8BC7F65203D2FC4A13DF15D513D875B1C3C86768BBDAADD20BC360C1EBD3D8F2CBD09D0BFBCBD169FBC1A55723DF30982BDA0CF2E3D0658DF3CB43D36BDEC9AEC3A6F193EBD949B903C2D46083DE2B792BC1B698E3DC23D15BDF4AD50BC765131BBAA844EBD0F5C74BCEDD13EBD5C81C03B7E99AB3BD40381BDCE09773D8CAE683C69B49F3D03B46E3CD3E2E7BC087FDFBC92B530BC7A4685BC789C873C2EF754BC2B1E1CBDF33EC73CA7678A3DA56F8CBCFE4D4A3C56CC67BD807755BD06929BBDB0EF17BD0122173D9F32793DAA9A8C3D4FDCDD3B5F741ABDC982B8BB2A33DF3C6B31173DD442A5BC582487BCCD9C86BDC7FCBF3CD9ABFF3BE5314FBDC293203C4631303CC9A953BD66A18B3D0FB128BD6D44083DB7D3C9BC3D383CBD3F3BB8BCD660BEBA4E8875BC98FD163D3D9984BD9E792DBD7CE98EBC3DDF67BD69231BBDED7282BDE9610A3DE571EFBC5996443D0B3A8A3DC45B25BDB738813D2BE9FF391991983D08E90F3DE1EE363D8367FCBBADD9BB3C0BFB9E3A595BDC3CE79C8F3C13B239BDC4718F3D8C7C43BD9441933D994E1CBD9C0B183D8E32983D05E0F9BC5C69523B4C62F83DE4ED3EBBD476783DFE4E5A3D556A27BD939E18BDE6FD79BDE70BF6BB869007BC0B1BCA3D563016BD73919DBD6976F1BB97C8C1BBF8E6843D54B37B3D4EB90A3C2ACF4A3D984B9E3D2625A13C1CB7603D36C0A23DC3EC9DBC9C02103E4109C73D2CF6093D136E883D7C48943D00C2C9BC989188BD2A99F93C0568F23D703B4E3D71D647BC7ED714BC0DFE173D037E723DE714D33D9E3F983D6CF1A63C8F3700BE940A0ABEE3B27FBD993A8D3D2EF6663D17733E3D43FDDBBB1933E7BCFA0C063DB93235BD83C3183D4741E63D123B893B21C2B53D6E73F1BD2253783D379D2D3D2C128B3CEF4331BDF6D3F03B4F4711BC0C77823C48AA963D9B8F633D4DFAF73C434D07BD98F10D3E9A7BE93DD650293D7629103E6DA09E3C2E1A13BDAB0F07BDAA08EA3C671634BD650EA83BF2DCA93C3DE264BD3776BBBC07B499BD074C883DF80FA33D3A16F33DB337BD3DC336623D3031AC3BE525A7BD9E51B73C597A66BDF9A644BB6D7D63BC189402BBE6CAE9BC5469003B9A51C03DB146083EC547043E5E0CBE3D67EF583D7CF5063D3CFD10B933A8193C5E164DBAD928903D255E0E3DBA55143D670AC73D2E30BBBCC8E995BCF4101BBDB34ACE3B1B70EE3DF5FFB33C7457203D2AFD263D9C4B373C90373C3DB331B5BCDBA237BD0CEFA33C8FCFC2BCAE44A4BB6CA63DBD0CD3653D44CF0F3DC028853DB8110E3D38DD2C3D579F3FBC8676E43CC1B33ABD48851ABBE95BED3B12F398BD95F332BD3AF5A5BDB5CD823C90B59AB9139FA93DA2A711BC88620ABC612A643D6640333D149FDFBCFAF5813DE133663D2EEF6A3A58970F3D2A494B3D0CC63C3C2AAE873D85DC8E3DC3111E3C7B4BC2BC49CFA3BC42DAA63CEB4E1ABD06F56C3D2FEFD1BC6FE3873D73F23BBDE48DB7BC41F0593DE34FF6BBF2CD513D143D2E3DE90D2B3DB399FFBC4D3A1E3DB55B60BD72C42FBD0ED852BC9FAFC8BC7728423D5A2268BD68DD2EBDDE5588B9435599BDE7259ABD9FEA1A3D93144DBC670695BDA2A28ABDB1E2873DC1E30EBD2080213D055626BD112D87BD70BD02BD5B0A0C3DC2AC46BDDD3CFA3C2AA83DBC8C92D13C69EBDEBCA2A603BD2B35B4BC41E934BD9FCD7CBDA439233D91F2283D0924043D2BDB673D0635EDBCAB62173DECBA80BD78808CBCF9A15DBD89BFBBBD3D3D993C3CF3A7BBB5A6433D69E31C3D6DF786BA4B3E873DF93B19BDFDCB963CE62A86BD21CC34BC39F8DCBCE15E11BC9FCB19BE4D1E08BE591996BDFD1DDEBBE6552A3DA1A107BDA4CEA6BD10DA613DD925883DC5EBF73CB40D19BD14AE0CBB589FA8BCF06BA9BD24B6E5BD5BD7403CDD4BF03DB5373A3DCFC5983D19DBDE3C23A240BDEDB996BC2574593DE5B8FFBC9DBED73C3D3957BD78479ABC8B5C04BEE5E8B4BD3116C43D7C24143E2FB9983D7AA369BD8A044DBCE9BB633C025292BA6CAF9CBB652388BD9C86C23CEC39ACBB3688323C67A6EEBCB67E883DCFAE123D0ECF9E3D3831D2BC06CD02BE50D23F3CA2F1C6BCF16997BD10E6F33BB84B6DBCAEC8A63C794B76BD3135C7BDB25F9F3D0F0CCD3DF0736DBCE171CD3DF29A6ABDD8BF0CBDA59A203D94E90DBBB9A8703CA3517BBD84DD4FBCEC74063DDF9A96BDFB97543CE4A1183A3EF2C43D0D3C3F3D790295BD15E8C7BC6374BABD973DF93CD86270BDF214D63C50E9903CA38C6A3D9246F83BF24F7DBDCD8A7BBDB1488C3D3434133EB31498BDD9158FBD75E1B6BD4FFF3DBDAE5EA43BECBCFE3C846FE83977FD5B3B3E7E283C38EE273D69D83C3D1FFE30BC1DDCEF3D09C58B3DE32B1DBE86B71BBEA9681FBDA79579BDC431DDBC6233253C8F776D3C754D4ABDACF636BD65FC023DAF41803D93BFA53D02776E3D0F0303BD94BEB0BD35A294BCF5CF983C56EA603C8ABA953B12C990BD8FD9193B1A2561BD1689733D9B2C623D9162B83CDC9E4F3D09D683BD78BE83BD7F343EBD3B26453C87931C3DB9ECAFBC82910DBC43F2AE3C4C75D93B3E355F3CF713623DE7961EBDEBE093BD3804023DE2C0603DE47F493D05D3BFBC8858B9BC8C0268BC94C739BD9B8085BDC64BCBBAC38C72BC8219E4BCB9994CBDEBB096BD6E2BA23C8D5887BC500015BD3246FC3C6A9A99BC48885E3BF659323D691E213C374AB6BC22C46C3CDABA583CA1BC91BB8E3BB9BD35EE793C91F48EBD8999FCBB0A7D88BD2EC06ABDA47163BDFB62BBBD3A9CB93CA71276BDDA13A6BDBDE59DBB1B32323D7C82D7BC4D941A3DD8D137BDC40654BCB9725ABD111819BB73FC9BBD100704BEAE6BF5BDE47C4CBBF18A50BD39FC043D31E56B3D90D3303D45AE8DBCD855A8BD1577FB3CDD83633D4579BE3D8097203C249924BDE28885BD2A517EBDA2D5E9BCD8533E3DB6C1BF3DEB149C3D2A5768BBA25CB9BDFE86B8BD356878BD81CF63BCAC233A3DC930F63CF874883CB3EB23BEDE5CA6BDB4ED223C90E6A13DB154003EA9B27A3DAF987F3D849157BD02B1BD3B56B9003DBC38C03DB9CC483EDE3C353EC2CAD63D9EF024BC04C3E33D29B9053C757A51BD64A905BDF3C096BD9F5814BD6B02B5BD2F06F2BCE966B33D55EE593EAB422B3EC8480F3E0BDE1A3B27CE15BDF13B3C3E5ECB7C3D58F523BDACBD8EBD7A6F9FBDF41A88BC0A811EBC1E5F26BC9667933D3A71723C00C7163CEC1890BDA04317BC5015083EDD983C3E4BA39F3DCA237F3D59DF533D2DA2CBBBD6A59FBD7B2026BDC2B2BEBD4E749FBB4E20263D6318E43C020EAF3C4719DA3D2B7F2F3E0CACFB3D6E515EBDE651AEBB32294FBCD43485BAC77C51BDED7D813CFA9917BDA6501DBE135497BD5B6E9BBDF194EABD71B0CD3CDC971A3D6E7C8FBD849C1BBDC47F8FBD8540D3BD81BFA5BD288E36391317CBBC92E2E2BD017709BE2EFC12BEE09B52BEA78222BE5D27E8BC3F68243D223C703CBB6F34BD6A278DBD18252DBC7BB0ECBC67CC64BD6CE7683CECCCC8BD471E2ABDE6B585BD7E3FE0BA790861BDA6CCBABCEF4BD83DBD60963C0F2A13BD0A4E22BC1AEE353D8F108FBD142C89BBE718B8BD240E31BDFF8035BD2E947ABC98E84A3886D4D9BC9CCF3E3D4B78B53DE958893DC4A26E3DA51F0EBD7C1F7C3CFA3B3EBB0446113D6BF2883CB81E543D9690943CB51987BD4C972D3D85E2CABB5D65E53B4E71EF3CA096FABB5D1A23BD382DA73A7D19073C9911013C894149BD07455EBDBECC89BD3C6583BD991FEEBC4DC73CBD07D32F3D20A330BDC32926BD11BB65BDD9BF49BD9CF0FB3CA79D503DCF9F3E3DCBCA6CBD838E03BDE66B8EBDD3D0DC3C9798213D7A69CFBDCFAAC7BCF4E0F4BDF26C21BEBA373FBD84CA0ABE0918C4BD4AB7D23CD3599CBD80A75CBDB32BE7BC4E01443D53D2C13C279C683C9B975FBDDA6882BDFC935E3C5869E73C1ADDA93C2D1904BCAB788DBDCF87EEB905496EBD662E79BC6241803D0C48CFBBCCD9113D6E075D3DB547E63DC65CE83D7432243D17A9763D9472A83D7EC8183E2C86AE3D3E59003E9A96A23D3B230ABD30B3A1BD130B25BBCC8FA4BCEF777A3D236F253EA403F23D5D70373E71713FBCF053393D41962D3E2589D13D38A4073E5680BD3D9732963DF8C3D43CF8CDBFBAC71B233D68646FBC61B1383E3C86C93D2B46783DEFB623BE54F988BC14B9493D0AD62A3D8B964A3D82BAA93D421A7C3DA4F01FBD23E2D43C4E11603D19A7773D0F7B3B3DF431A93DA74C933C16ECC0BDC21F8FBD6A9AF13D1C16863DF86032BBA2FDF3BD384A973C738C493D447FB8BB4F07253C966CB5BDAC1A333CD7FB03BEBD0AFEBC82D3F1BDFAB2F73B31FAD33C8A6376BD028C5FBD47F7A2BD6807363D0442043DCE9163BDA352B1BCADD8CB3C35DFCFBDE14E0B3DDAEF3ABDCB2F97BC6FDFB03D4EF20FBDC209D1BD1823EDBD2634C1BCF5DCB8BB1B77183CFCA699BCB543C33DEE871C3D1204C0BB8BDD483DC6ED63BBE76BEF3C96F5853CCCBEA1BDAD5187BDBAD4203DF3DE873D2792773D310398BD5BCB1F3D2EBC1B3CF46A8BBABE58BF3A985365BC1450AC3B5CE9A93A4EF897BDBD039FBD00E685BC444BD03CBF811A3DDFC82DBDE07E803D0A386BBCCEDA6CBD8CCB53BD23625A3D72A87D3D8A2A963D90F4B43C5C6AE53B30335E3C7C17843DD042A13C8C782C3D402231BDABFF62BD3FF8813C8B4771BDAD4997BD233B8F3D31E5973D201FD73DD3D7473D7BE4F93CA8BE753D15A7CCBCADD9733C66639BBD2D96343D042D9CBD0B649CBD969B18BDD509733D7A9520BD98DD773CF74AC63D37B7953DB4242BBCCD3085BC6886533B106299BDC3AF9FBD3D51173D6D2A4D3D12AC93BC065389BD55C60B3D9EE5FC3C0DAFEC3C3A307B3C86B8C23CD3C62FBDD07D7F3D555740BCF7C916BB541DC9BC6E79B43CCF3A4BBDCDFF0E3D2A1F36BDCFF48EBDCFBE67BCE430893D68BE983D110D30BD031ED33DF64E6DBC3ED0E43D85957F3CE0A24EBD9DB881BD2803CA3C211B1E3C6733F03CF9067BBDF27DB4BB3AB5653D9FEC60BB2F9618BD4618A2BDC46C4EBD3B0BB43B1FB45C3D75CE983DCAD4C2BAE3E2A1BCCD7AA83C05CC9FBD2789493DBF0480BDADE395BD783147BD1C6485BA078EDE3B66AD883CDB02DABD2A8FF6BC9F30DFBDCE66F1BA95960E3DF886003C86838DBDEF8D1BBD58F8F83C0F5B183D5BE6ABBCC17AB33D327F7FBDD780DFBDB58E8BBD2B6649BDB3A438BE7F02AEBD58DBE53CE187A8BCD9137B3C2528BABCDA75463DD5EC9F3D4A37303C27725ABC165E38BC221ACFB9F056C9BCC5C3BFBD8C8037BDA6B3FDBB5D23043C9B5CEBBC913A833CAEC27BBDCC9012BDC0954BBDC26019BE5A040ABDBB26CD3DA039B83D73FAA93D2ABF743D1197FBBA84B6BD3CF974AFBC682898BDAD070BBC38E1CF3DEA6A873DEED9BA3C1E0830BC89C8073EE3F2373EC9E7613D3CE5A23DF818FE3C16EF5A3DC598AABCAB3433BD63594D3C3131913B82BF1ABD77C3603D64AAC03DD6CCED3D1276673EAD0D973D2B331CBDF94B0A3D8A563B3D78464ABC9BC2533B77E47F3D06E2E4BCF8C3C8BD0F1D04BDBE3A303D7C28863DA53A823D2D733A3D52F3BEBB1A2981BDF60AA8BD18E627BD62E2C6BB3CC9ED3CD8B8C6BC74BCE0BCE0791BBC00B7DDBDDCC0C9BD1FC3B93ABDFACC3D1B78833CE43CB83D39F08D3D7CE1E33C2073243C18EC92BCA4CA96BD9A5FB1BCAC58483D29F873BD84E4D8BB78217ABD7D770DBDA77185BDC82CD7BDB112F4BD83C09BBD774371BC115E623C98E7983CE03F3E3DB1C66F3C83ACA2BD681D72BD8F74DEBCAC0E52BD62691E3B2E768BBD7803D5BB143FC4BC37F8313D37BA06BD1091863DDA0724BD51812C3DEACCAEBCFBBD5ABD4515EF3BEA598EBDA1F0083DE950CEBCEB3355BCA6CA7BBC470CE1BCE2022B3DF084803D2CC4753C951033BC33D056BD64F0393DFDC6EDBCA83E7BBD81B0373DB03F5BBDFFC960BB3B28B1BCA165013D179971BDDBB741BD6F6698BDED75A9BCBF3396BD20CB083D9405183D14AAFA3C44273D3DFEED40BD516B223AA0D84AB9D858C6BC87D77E3C4ACE76BBCBB292BD7E9DCCBA82C0F2BCFD220BBCC58435BC296B4EBCF1DF353C1B774C3DBCDAA03D653865BD1A9A553D5AE39F3DFD79CD3DD0D98B3D8A92913CF891583CAEE39ABB0C294EBD6D6B22BD0A2C66BD9A87E0BCF90CB33DE65782BC57B6E1BC2302583D9C6E543DA4058D3D602DA1BC96E4FA3C680639BC49BF9CBD6496003D6972FEBCEC953EBDFA61963C09BC863C2CC2903DEDA0AE3DE6350C3B1D4EF5BBF364123E4958393C41CFFF3CA821993D642FD23D4CD5263DA00E99BC533A833BA2E31E3CFAEF093DD41098BB60D5593DA27115BE8731FA3D7FB5223E5FB5003C65A4453D86D3A43A52131F3AF365693DDD038EBD8178823D227B7A3C79E2823D10CE9CBC2D899BBCCE8CD2BD141DCA3D7C5C113E4DBA763DBC487BBD5311AD3C847CC4BB9B7FB93CDD6713BD41A785BD35A18DBD0A3D44BC1E7BD5BDFEA5F7BD90BEE6BDFDFB703DD6F29E3D58321E3C555923BD16FAA7BD1B06D0BDD363193CDF159B3C1E54D73C003D0CBD060CF5BCBA70A8BDAAFB61BD64FECDBD129A10BD933AC3BDC297CABD7FECBEBC38B08CBC403B783DE86ECABC2463823DE240B039A951213D88D8AC3D3E73D7BCB3A7443DAE108B3D133527BD2143EABDBAB3BCBC8432123EA9D2053E0F9D313DC3D892BD404918BDEE7D8DBDB78A103DBE41713D55DB8E3DFDCECE3DF5CC9D3D9360DDBC03C98B3DB540D83DC498EA3D09AFAE3D1AFC1DBD8F5CFC3C44280F3D09AB9A3C978A40BCCA32D93C005E453CCEA4333D837762BC60C2053EC231403E2855133EE347A53D302CFABC80D0B03B773BDB3C5001963B8ED14CBDF9C683BDD8F70E3DBB219F3D2635003964E6793D5213EF3CF6D1983DC616953D110809BD1CE4E73B0F159EBCA602C6BC0C54C4BA84012C3D5BB6273DC1942BBD60E2593D0BA020BDAC5DE13C851D5F3DE34C8C3C8CEE2A3CA8201D3DC529823DEE06E2BC2B95DA3C6B1CDBBCB4A765BD9FE99F3CE0560E3D6E6980BD04EE61BD27A158BD36F4B13B57D053BD8E33C7BC420F83BDED86063D5A880A3D736804BD1C14573D491AD93C51F85EBD23D2953D7599833DF1EA4D3CF4C7DBBCBDADCFBD80FDBDBC65601C3DFFEA99BDD734E7BC09FD6A3C223E70BD5EF83B3DB3DE853D06418D3DC86953BCEAE8DFBD3DED6ABD16C106BB37D75A3D6630D73D2220433D6C24EC3D7700DF3D3CA339BC6AE142BD4F0002BD5C6255BD49818FBCFED5CABD4AC19BBD8FF94FBD2468A93DC451163DEC8FD83B50DA40BDC81BAD3C4B82F33CBE85B33D48824E3D0780B5BC7E89BDBB6DFD0E3DEC23603B8B3949BDD09F673DDE9C083E7C2BD0BB5FA3ABBDBCE092BD26DCDCBBCBE9E7BCD121F73DA7A74D3EA5179D3D7E9B9B3DE82268BB0943903DF85E703DB8A5B03D9CE4FB3D609BB33D9D0DB6BDC1FC01BE2683583DE80C2E3D920D8F3D7865A73D33F6E0BC110D84BD1E5DE1BCCF148C3D8F55A13DB6AE2B3D076F0D3E51F3CF3D5D48AFBD78D98CBDE2C4A8BDAFF9D9BC3068C63DA581623D45E9833B824B023D28EC7BBC9F49433D262C8BBCC26911BB081DC03D57B6963B745FD5BD5393AFBDE03CDEBD71E485BD87EDCC3D7C77B63D0C38FB3C44D2AF3BAB934ABB5B5BAABD04E611BDF08ACF3C2ECE9D3D7F021F3D48DA8EBDCD3EE4BC925893BD1B08843DACD5583D7DFD9EBCE68F91BD0CF0963D229958BDB89ECABDFC1757BCDBC3A63D9D5A023EF8FE19BAAAE9A4BD9C3DEBBC53E70E3D4A97913B93709F3D92F8B73C1ABCDDBCF33B043D1D9248BD6B869EBDFD59A53A8A4EEA3DE1FD003EDA2844BC50391F3D130B1DBD8BA3573D98917EBABCD337BCAEDA0BBC657F0FBDFDF6913DDBD918BD984D98BD975BBDBDF32C433D5649023E3C0A2F3EF1FBE83D509AAA3DC5D087BB83237E3D639AB7BC4DE2CB3C5DF2843DA71148BCA32B7B3D02C6293CF47580BD2C2A23BDA3A99F3D36BD933D926C543D33E5DE3B29FA3CBDD10254BD4D4A533B055173BD03597FBDCD053BBC76832A390158573DAE7B5CBD01EBB3BD7400CBBCC617C3BD8C3C1EBD19C4FB3CBD6D84BDBABC873C64B853BC3D2AA03D939F0D3C472246BC288DA9BC261322BDF6713E3D06992ABDA06F763D315C2E3DFB3685BDB95B543D3C91CCBB48791F3D17951DBD1E28FE3B4FA01CBB944C62B842E391BC5DAF48BC8E8029BDD5634F3DA1B7AD3CD97653BD6494D7BC4A0C82BD6AF0A5BCE01B1B3C9D0E8B3D2FAF96BD007BA9BC38695EBDAAF7353D32B09CBDFFFD903C5043F43CB8C2343D05D0BE3C1C0384BC2261283C2F4D99BD22F2373C7BD9A73C30CDDABC1EC7B5BCBDF9FD3C828D04BD56559F3CE2ECA8BBB62AB53D5FAF64BCCE2DA13DC09BA43CEE5B853D449715BD1A618EBD0CF402BDF39C5ABC825093BC7E58493D206C69BD172E743DC64EDDBCC03ABA3CD730A33DE1CF343D51FC803D4851FC3D1B8A80BC591832BDB96E00BDF190A2BB170C423D911A8F3C6F10863C94396C3DE18F52BD81739C3DF6FBDD3C1C51E83CE5C510BE9E7B743A0A70C13D9419B23D59FF18BCE19C88BD24B6ADBC99B42E3D01528F3C0CCB46BD4E6291BDC13BBF3C540289BD1A9F16BEBBF5D3BD2CEED33D6C8CD93D40D2BC3DB78D38BDCDD06E3C162E1EBC911AFB3C3CBF2B3DD1F196BD46E4ADBDEAA409BDAEAD06BEFE1DAA3B908461BC3CC6373DDF7A833DC48EB63C4CA5083D0BB72E3CFD076F3DE09BCB3C7BF1503DA3BE48BDFCD635BDC8A526BD6974013DEC08D63CDB4DD93D7F79033E8F6A473D67B1C1BD87FAC43C4D26F83B990E6ABB2BE687BD78C18ABD312737BDA6C29DBDBE6296BD4FFE123E9DCD153EFD5F9C3D4DF689BD34CABDBD7975F3BCB5A3CDBDCD44393DE43B05B880AB273D9D2CCE3C50724FBDD4AB90BD6A4789BDF5A4843D52F4213C3E96CCBC2CE93CBDF747BBBD98A08BBDEF82963C042D873DC8DB5B3D4A4B493D493C3F3DF159F33CFD44A0BD917D97BD4EF0673CD5F023BC7C5F3D3B7EC7363DFE94B2BC9CBC80BC4BFA213D15D0963D793413BD694065BCF0598EBD1982DE3A8D8A503A8E11743D36F4F9BC9EBCC3BC1C21963DE92B67BC62AFEF3A0C016A3DC7FA6B3DDF230EBC2FB093BD2E9081BD5FE495BD7C7895BB55483DBDEABBA13DF89B14BDFF7F02BA72A1723DCA611ABCA17D783D445B3C3CC953823D562DB53B94A51F3D28B889BD06CC0DBD14C7E23CBCAF00BD34EC9D3C568442BDF71C213C5691913B9CC632BDEF7CC5BB0A40503D16A469BDF624F83BD4900D3DAA107C3D24FC8DBD1A1CE13C7F68763D8C031B3DAA69ACBDBD6024BD98F928BD982835BDF84130BD59B52CBDA2CEE73B51BD8DBD3C2560BDEA8FD2BB848393BDF9E7663D0D259C3CE7824EBD9D1F713D732704BC2502FE3C8C6D5BBC78CBF43BBE43A33C70D69CBCC57B333D44C32ABAF8E3093DFD81723D6AF2B4BDB732B1BD1196903D539E1E3DF357F43AFC772D3DBC07B5BCD053D83DC92E8B3DBE3DD83D4FB5EB3D441807BDE15872BD6970ECBCAB601BBBF474AF3DE1B3D93C5D911A3E4B47A43B0F2FB3BDDCE245BD0403B03CEE7F463DFDD9373E3C31213E753EB93D5491FBBCF448F9BCF1CE7BBCE989D33C38201D3DF330083D27E5B83D89E6ECBC7BD30F3CFFBFA5BD050599BD1A7F59BC9116BA3DEB413EBDD2344DBD7D8FB9BAFB1805BDD1DE04BDA3F0C13D6E8C323DCF4B443E6516203DF42F25BA710B45BD3EF6CFBDAEBD81BD803C98BD70BB08BD8DC2AA3C855587BBDEBF07BD7DEE07BE08A1953CFE2BC33BAE71093E4CB3D63B92B3D7BDC8D3EFBDF1B88DBD3059ADBD6CBAC1BBEF62F9BCCE1E86BD523E833DFB607ABDD06C81BD97A10FBEBC13DBBC3F5D81BD661B15BEDEB3BF3BE091F93CD28CC93A2AFA82BDC0E22B39D4CB18BDB318113C960BD8BC854D113B93E6023E276C283D7F7638BD1D7766BD6036DABD10DC86BCA4BEB13C569BA63D08348C3CF344923D4941813DF60907BC301FC73910E8B93DDD6CF93D9C37DF3D86593D3DA0E50E3D637D5C3D6509AE3D10DE833DE27FAFBCD891B53D8CBB66BD9D2374BD19976F3C87EB5A3C1E7C693C6FF4E23CC280673DB3DE913D48151C3EEAD77B3D1034C0BBB49D893D87E8323C430BEF3CEA2444BCDE83203D9C4E5CBDFA6618BB3ADB79BD7EF4BFBD48215F3CDA3BAF3D8D14673D830C853D5410E53DE1AF843DE697C4BCECB916BD7EC0B73C6E5C89BD72ECAB3CF9A8493C8A76B5BC85E26BBD46AF53BDEE9ECDBCD5C8ED3C2895FABC9F429FBD5B9478BDE841FDBAABF4493C845C18BC1480E53B8021F83C726116BD8B638DBD40A2253D65F736BC6C41A6BDFCED68BCB06E59BCA4E79CBDADD70ABC85A0553C5F06ADBD67DB593C6AE16CBD7CDCD6BCEF955B3D50C181BD84BE82BBCC80BABD7812C9BDF9CAFFBB0A4924BC5D0897BD2E8C743C8DF796BD7CE0293D2F9E503DEA78D43CE9038EBC6483ABBDC25AA13CFD614DBDE5CEF0BC5C66BDBD137382BDA661C1BC6C6BE63C1D59A53C48F749BC354D1F3DD2A2793DAAE038BD8522ACBD393D81BDC7881D3D02F6FDBB8E197E3D2527AF3D8480A03C2B7DF2BCFECAA3BDE5F5BB3D7E96B63D824279BC66DCB3BC3B78853C219788BDEB6200BAA4EE2E3D7430993DAB1CAA3DBD2F933D2D76193DAE59B2BB4848783D2DAF853D1953D93DEBF8A13DE7BB05BE7C1770BBC13A23BCE0075A3D5C55C1BC1593A3BD6086D63C16B3CCBC8C9FE3BDAB3ED3BD05EF813DA0BC753DD408EFBCEA638FBD112164BDCB553B3D649390BCA4092B3D148115396F16BABD8F55A2BC6BA5B5BDC2AD2DBE8960DBBD8787B83DF5BC6D3D2687FC3C64DFCDBCFDB552BD6F84AABDD9CCA8BDC68D07BD33CDF1BC7914723DC47B303DADAC39BD3C959EBD9283DF3C0F9F323E72950D3E4B3CA73CDD9380BD30376EBDD0495FBDC67BAF3CD20281BCD951A1BC6EDC66BB4B2F013D532906BD719E87BBE674353EB84D163E65C3133DD9385D3D585AA73C689F15BC94F2BCBC7D24E03C645379BD02533D3DA7CB5DBDAC69B0BDF95C72BDBA769B3C73ECDA3C9A6E80BDF4B0E3BBA1573CBCF1158A3C150B16BD42229FBD08C2D1BC4F59A73C043FAABBB50D6FBD88A543BD66EB7ABC7CCC96BDBA36713CCE4294BD4D9CCABD111E9DBDA6A8983C11537F3D774555BD84EFF13BBC31DFBC7900053C99157D3D1DE31FBCAE6232BD6E81EFBDFB9416BED9C990BD06A286BD25E6743D0F3B96BD399C633D9ED13A3DA156A4BDFA2F82BD0F1B113D1C70923DBDD2D33DF388E4BC3E3E55BD00E129BCA7496BBD79F48DBDEAE488BD3F61AA3C65D92BBC422AC83CABF086BDA7E656BD4FCB6B3C66F957BD9CDDA03D95A84EBDCAF42ABDC0904FBC686C863D638434BCC9EE193CB93466BB8339C43CAD784B3CA319313DC8D2A8BAB75142BDAE2E773D85E6DFBC62877B3C783DE5BC438D0DBD836669BD77A8AABAC443183D28CF74BDAD9463BDF5BE47BB8A60ABBB1CA378BD55FD6EBB9CAB833D6F9B653D4AE781BCB5C55E3DC29C46BD86B0CDBD9F3877BD602CA9BC58026ABD830784BDB3D9C4BC37D88B3DFAF2323D8FF95ABD20F27FBC77E8C1BDA2CC07BD019C0D3CAFFDDABDD85E8ABD2B9D19BE09C2CEBC55044CBDD92D50BC9CDD88BD9DB5733DBBD96A3D3936D4BD6DD900BE37E48ABD8724613CA4B37F3DCC82523E62D7733EC5DCD83DFC9D6D3DE6EF76BB18491D3D873292BDBE35963C5DEB903C24F1083A17CA333D314B3E3DB3EC803DF6301E3E9774153E0A09CE3DDAC62C3E7489163C8A37FBBBDBC83E3DEF0A6F3DDCE9CD3B1BF32EBDAC6375BC4616923D9823DE3DA3DBF83C89C5533DB23EAE3B399EE4BD86F2923CF857EF3D2FC3F23C2934E73DC903073D08C976BD5ABE4D3D2D25303DAEE600BDE54BBB3DCB4392BD24DAD8BC3062A0BC745F10BECC4BF83C188F3DBA5F096EBCA5E1143DA2F11F3C443D94BD08530ABD4CA50FBD128A1C3BA3CC5BBD028F6E3DE2AEDF3B849FE0BC4408D7BD8665A7BD29639CBCE5E1C8BD7FC44B3DF45909BD03A508BD78156EBDC7870ABD9EF5703D140256BD20CD6F3D27B340BD3A8D26BEB9674D3DCF5767BDF3FD68BDE7180E3DC9C818BD270B133DC21D3B3BB543E5BC2B01403D48C7B73D60C8ED3D7CCA153D7EF86EBDD7B873BD6D9DE33D4C8DE6BCC1CD08BDE42C353D50C7983D6D99893DF9F28CBDF4833D3C2E84B0BCEC74483CF6B9633D1F2A823C154A35BDA7C8533CF16E2ABD769557BC13AED63CF6B7903BDE62973DAB488C3D3245183DF73E09BDC7C11EBD03506B3B9FDB193DAB8606BD596EDE3DF29011BC4DBFB0BDEBE0E4BCAA8ECFBCFA44823DAD534D3D352ADD3BF168433C003DABBC67D12EBD74F23A3D5A4D973D0CAB9C3D4FB4DA3D4ADC42BC7B34803DFB14533D6B3F4ABD276C333DCA774EBD223D733D77C3613C6CC9683D0EFC15BBBB3F49BDDA9C6D3C74E3D0BC5DBAA7BCE3EC173D66C2463DD455E23CD776793DA403EBBC6FB32CBD3201B93B6AAA07BB328238BC952D86BD99109ABDFD216ABD0C733A3B7A1F91BB91F0603DD331EBBC0FC041BD6D10C2BC2E7A6B3D5B7D9DBD0167DD3C970905BD6C7B583D73C4223D9937A13B7BE600BD2003D5BD8C0A02BEE6B5CCBCBF8EB7BDAB39BCBD390F96BD28D2D7BC5F7BA83C6B35B03C5FA867BCAEE437BDE85223BD70C78ABDA88D8EBC70AEA5BC9AC422BD8819DEBC7B1E123DD94579BD662A4BBDDB67023D94FC1CBD99E8223D7C4817BD2CD0163D0112F2BC5F83D13DF5FC593CCC57A73DD6539EBD1152BFBDA9CC733C0284BD3DF656D43C5E72FE3DDFA117BD14FD98BDFD200F3DC3FA1B3D8E0C223D771D9C3D118A633DCC51763CCA06873D7EACE03BEC60A13D602C0A3E06660C3EF86FFFBAA58B59BCA2CF1B3DB96C7CBDD2ABA73D944FB03D7AF250BDFE9C013DEE27E33D6497FC3D05C7AF3CDF18D33DAE35873D91A49A3DEE5617B9B8C7B3BCE6019ABD2042A0BDE2FCD7BC55FF1ABD57172A3D3396ED3DA05BE83D5D444DBD1729EBBD65CE8D3D5E9536BDF7F1B13DAF98E23D4093253C7A0B4CBD146808BD3670DDBCC4A5DB3C9F321E3ED5916C3CB8D9AD3B4011ACBDA8839DBD16E967BC4ED5283EA18F663DA477D13CEDDC933DDDDE9EBC160BA2BD52AC95BD2F58F13CF036993D17B6BE3D5BF25EBD7C823DBDE439323C36ECF73DEE00EF3C00B24D3DC3D6C2BCEC3705BCB2E77FBDCA8A5DBD31A15CBB6B29A03B5FDF3EBCE4CD48BC83CF18BE896649BD9DCA9B3D525961BC0F2A61BC39F2B93CCEA693BCDDC1DCBD2E332CBDBEEC53BC728831BD02269C3CD71417BEC65EDDBDF75EEABBBEF8C2BD48598ABDE40FB93B4F5712BE89E78FBC5ECE39BD40C8B8BD24A3753D36EC44BCD86B26BCF5FFD83CC90FBBBC8C5B3E3C25440A3DF53B3D3B0685A53DC7740D3D6F083EBDD7D3D43C25B36EBD238A203D7C1C61BCED715DBDCF1501BBDDC54E3DF57584BCDEF1863DC60C053EB895B23DB062813D20CE2CBD7F03493C091C083DC839253DF48265BDA9426FBDA5B772BD115350BDE0DD37BDFD180BBBA442523D396851BD3EA4463D834ADA3B90DAA1B81F9AD73C2531213D725F013D4E5E92BD31ABCEBC32BE023D8A7770BD883D43BD39C14C3DD14BB6BCFB36E73C2A40F23CEE3F913DF15FA8BB98DF7BBDE5159C3C5C9E0EBD6EC49A3C96C393BC754B73BD6AD27D3CAF6C2F3DD07A1CBDDEF8233C8F5192BD863B9ABDB4C42DBDADFF64BD9A9C0EBC29BCA2BDC69B173D230D88BDA672B13CE558823D65D8EDBC003169BDF6354F3DCE31233CE2C1BABDDC5D20BCF09C09BC6973E1BD0B609DBDB9382BBC05BB123BD167FCBB1977D43BBA8C7C3D5DB5443DED5670BDAA35ABBDAB0BC8BB1E525CBC76B1313D03E1DC3D79EEAB3D35DFA73DAA71C53C4F56303C7397343DA2E16ABDCB6401BC3B26853DA82AE1BA8C54863CA3AF18BC4AD99A3BC7F9CA3CC2A0CD3D86999E3D20A9F03CADD1A93DE466F5BB23C1183D274E983DD3AEBBBC93C1343D91C803BD20760CBAF549EC3D0E33293D1425B43C1253F13D9BD98C3D3F6CBD3D52B68E3D46AD8B3D2DFC82BDD3E06EBDDD4070BDFF7F313B6A85513DA2BD203E3889FC3CCF859C3DEA0D103E5F50573E53A5133ECA29B73C617EB03B9C4A233B56D02D3D3BCC153D58747E3DABB109BAC56EF8BCE995FE3C8622193DFCEF0E3DDEADEA3CE809DA3D2D6F2C3E7F0D0F3D6EB1DFBCF685B43B373097BC1FAB733D788FBE3C005E31BD23B2F3BCD6606DBD61882A3DCF0AC33AA25937BCFF36CE3C2BCBD33C7A9B2D3C685BB1BD7EF2F3BD89BE05BDF3D4CCBC4CED0BBD703C31BDE42CAE3C5EC401BE24E602BEFD9F29BE8E9CF4BDC92ECBBCCB7868BC104283BD94DEDB3C7B47FFBD5416D7BD7513353CEDB276BCC98DDCBC3FF889BD13FA7BBC9264D4BD2C6F54BEB1DEECBD2988C5BD671EC5BC030886BDA38EC9BCCACDF4BC68EB15BD84E0603C5C1D26BD4FE24DBD3719E43AD05558BBE276C43CE876C13CA0A07F3C2A3A693D827653BD614709BD5633E83C27FD26BDA64F92BD976E0ABCD64610BD6541853D70686A3D0AA731BCBA7C853D75E57B3D302ABC3D48484E3DB70FB43D8811D23D62E7A03BCA5E0B3DEC4C63BB87C582BC555480BD7798983C5E7E513D0642A4BBD2B78A3C44DC9C3D464BAFBC0746D8BCF151DDBB287AB53D5A197A3B24E66E3D93C8803C46532DBD277E80BD861B183D30C39EBB06A7513C9543243D9E49F8BB8C113F3D8A53783D7D9BB0BBBAFE633DBB98493D4D5F153CA04F04BD8D0BCFBCA0720B3DF9B1763D9EF009BDA65785BD054EA2BD4A1407BDF18E3ABD93308FBC4B8218BCA45D27BB89BF0EBC052AD43BDDB01DBDC42684BDF300EABCC59E84BD946B4C3CB04A40BACA61453DF47B593D5544A33B020B553DC287C53CFC79A93D09EB823DF572A63D58152DBDFA0B4BBDEB3A873DA794463DA4DB2E3B543347BD2A249ABD8AA133BC66101DBB388414BD5C2310BD75F2A53D1043ED3C12050A3D27AA043D0FB4623D218A68BD5EEA203D8920FE3C33120ABD58891EBD08FE76BBDA5EC3BDDD22953BBA2CECBCDD82A43D0FB1163D230899BDE0548BBDE0E88C3C4FD10EBD232DCF3CF599EBBB8D66A0BBF66C783D171CEBBC5B3C7DBD1D621CBDA4014BBD22FFD03D874B713D4A3C04BC69060E3D51C666BD653FF3BC8B18C43CA21327BCE6B4643D3704C63D96EBB2BDF62E023DF77853BD79F8B3BD5B76EFBCEC458C3D749CB83C256480BD7CF05EBD5B14DEBC946A13BDC9121F3D9FAE093E18F8C93D9B57193D80E7A23C840542BDDC661ABCBD9C093D07E9CA3D047E49BD932D893CD9A083BC67FAF33C56BB003CEF3176BC5B50223D2AAD213E328F593DB986B63DB149163C58ED343D0005B23D378F3D3DE3EA1A3D01897CBDDAF557BD3F5F7FBDB24ABD3CF10F8A3B2BC66FBD1B69CF3D12129D3D2725493D040820BDFD4385BD933091BD1B68ADBD5E0409BCA04CEBBC50CE803C4A1E15BD581E243D3F2C80BC3468B4BC87279FBDE73B3EBDBD587DBD32DB72BDD71C49BDECE3C7BC32FE733D943E303C4C33813DE8F7DD3C2E581ABDA0C7673D16E0C5BC235E19BD173A3CBB1FD767BC42DBB0BD177DC3BCC00827BD65FA833DC408AD3D0832183DBD7989BB2FE7603DB9C98BBDF19C4E3C2E0368BCC186B63B440DC7BC1C900B3D2E8D38BBF64B6D3C6127C0BC4BDE573D8900443DA3EC323D6E868B3B204275BD5F17D2BCB48C63BB46252D3D0858A5BD49F55FBD5C08003CEF655E3C5D7114BDA4DAB4BD0E23753CE77FBEBC0A79FC3C940B863D7EDE753CEF09413D89C1A33D942206BCDFAF033D9915263C23CE643DCB06233D4D98333C96630C3D836E853C8D4EF5BCD0913E3DC79838BDC56B9F3D44D2E1BCBF3A1D3CEA94A6BC3771243D3C4C38BDF470033D0A374C3D206045BDD9D3A8BC409F8C3D28BD333D96FC8E3D9542013D8E637A3CF655B8BCBE3219BC71C42BBDDAE3A93D71EB663C5812C2BCCBF689BCA695E03C2539F53C9B98743B93B9693C7DC157BDAC9D59BC7BCBB7BC5255943DC364A33DEC9142BB2E508D3C5E8CA03B3A67A03C762A843D62CB6C3D4A2AC23C2F90BB3D95431F3D1DE361BD88FBE3BC9DEE3F3D400007BDADCB08BDF4AF8BBBDAA2AD3CC8FBD2BC60D493BC12EF72BDE0950D3D63619C3D7059F63D6BB4E9BCC84162BD936502BD0F6EAABD30027EBBCD817D3DBFF9033DD26E113D187C1BBDD4A52E3D0C64F73CDE6CA53BFB678B3D49A3C63DBBE6133EC4E32D3E2F82453D9BE92EBD9251823D2FAADDBB9EB9413D0DB59A3D8443893D57F9DE3B75E57CBD6FFC11BD7529DC3C965AFABC3176E23DB4FAD63D91D5023D637A21BC3066D93CDAEF2DBDA9B6CEBBF4816FBC6CF683BD452DAABDCD949F3D623017BD4EEE703D669A6EBCEC9CE23C94B3843CD90DF6BCEB384DBD5828FDB8A6AB903D89C2933C2C4D8D3DD916C03DEA8DF93D38625BBCD8BB3EBDFDA1183D485779BC0F87D33C3BD9253D360950BC92CABEBBDDAAA4BC2D484EBDD3EEB13CC482693D97B5693DC6ED853D2757A5BB9D564EBDD480DFBCB430A1BD5FC5BD3AC1DC093CF17810BD9DCA783D2BEF04BDA2DA41BD5D5CD43C88C489BDBCFA87BC35D8263CA17A24BDBCC107BDDA52CF3C7C43BFBDC10E91BDC974D8BD367116BDC8F759BD06C619BD740E153D87224DBBFB46663DD6EB35BD301BB13D4127F63DAA13F43C5B6D5FBDD4545DBCDC7758BDDD0CF0BBC669E63B5C350F3C228788BB3DB6BC3CA5CAAB3DCDA9623DAB41C63DB66EFEBBC2A143BDABE8AB3C64BB9FBCF439ABBCAB3681BC79C799BC75433E3AD4FDAF3C4213C53C9084B2BB811A803D38F17B3D78C8453BD3A7F53C4C4D2D3D658AA53CE17CA1BC3EC28C3C01142A3D606D18BCC25E9CBC3E12C7BC319068BD070909BDD1FD33BD2E90B0BCA012843C55391C3CCC7E803AFBE2673D502D84BD47CBCFBC03E16A3DD4414E3C2A4F5C3DB712B2BA60C17F3D87F9EBBB7AD2CB3CAAEFC7BC66D261BD68AB60BD708A343DD41BB2BCA5A16DBDE38F8F3DFDFC2EBCC8D3663D8A3F563D761FF53CECAE80BCC9AC853D88C05F3DE3B9783CD8C3FC3CE15D26BC27B5CD3C5190273B55718EBC58B7B63C00547C3C23F3873D72FC42BDB60CDF3C3F4BBDBA48D58ABDB5D74E3CA20468BD88FE3FBD2DA1933DF52D43BDDD3258BD5D1AE5BB4527FBBCE5474B3DD8E9F0BCA2D212BDCBF0093C0F7F0B3D8C8A273D27C3493B82EC4FBD5CB4D03CAC54103D5397683DC9E484BD8783FCBA92C28C3BE84D4D3D5D316EBD80B1CC3B933913BBD9930C3D2BFB0BBCC0A26A3D7BE2013D05C601BC9FFD60BDDD0428BD1ED49DBD9ADA13BD365A453DACA8A43B7BEA4F3D2A252A3D0C96DBBC52A7333DB5E10C3D2A5EBE3CDF4C3E3C155A2FBD397B25BDD4BDC33A0F72813C783DC43C4BF6323D7B9B3BBDB1831CBC114442BD58E589BD95DEF73CCF3F8A3D3D7A16BD53344C3CE93D1EBD1F86883D07A5B13D179FB53B826A84BC65A588BC272B91BD117C343B066F0EBD492A52BD94F6333D7EA0E13CAC6874BD2E4F3DBD096FEC3CDAA2ED3C5D839C3D9B31903C5225183DF31ADCBCE67A44BD6B3E1CBD0F029FBBE7A9D2BA7E2A93BD627E8B3D11FD0CBD441E6CBD03FB9ABD481F1FBCE80897BD2739E63BED8D9A3D4B47AABC6C689BBB985A8CBC6135ED3C84B3463D73EE903CA6CEEF3C1ED48B3D634AB43BCA0D2EBDA128483D90964A3DB83A4F3D81921ABD5BC31BBCAF8C1E3DE59A733DC7ED793D1120603CBFE2693D2936DD3CA1499D3DFBF8323D6B9102BCD3AE19BD227404BD75300EBD92EA40BD4FAA0E3D18B509BDEB8788BDA7925BBD6776CFBAAF26FDBBA2C711BD7EE1D33CE31E7ABD51ADC63C16AEB63B409A7D3D23EBA83C5BE016BDB12CBBBC3D2350BCC2F3BB3C189C403DE61F50BD71D964BD709D73BD4A4C303DF3D3C43C954EE33CC17F1B3D24BF853BED48663D3B84A63C427748BCE2A37E3DE87268BD4F3EE03B6EAF503D1A92193D0A41E6BC3C8BAD3D33F6773CFF82F23BDC139EBB2C9C27BD9081973C0F252F3CE2810B3DE436C0BCB7B8893CDE4A61BD8657903DAAC0E43C5394183D4032963D606670BB8BC8153D03BB793D84292EBCA357EA3BAE0C983B489058BBA966893DF14D863D559F613CA8CC58BD82E6243D61799D3C0E6CDBBC3430C53C56A3823C5827503DC8EDC93DE5D87F3D3501ADBCB061243D7E2C45BD64B7963C3283333CAD81FD3C49EE46BD15171FBD7D6E853D2707483DDC95B83D9F3B083DB981FEBC3E02D6BB60490DBD0C128D3C5417253CBF75B43CF2A3B73D5B835A3C1F01B23DD160833D2C43BD3D489CC23D9CC7833D4538C4BDAE29F83C127AF0BCEF3A96BBEDBF3E3D93FC193D8B668C3D911D3B3DE8AAA3BBAB8C5B3CFD92A53DA1EFDCBC14FA423D04CFB3BDCA24673D7899043D4B90533D5670AF3DFE17C63D5E68943D96B08F3CF2A7933C38E4293DACBF2E3D0E132CBD333F023DEDC29BBC3AC713BC0D0DCB3CEEAE7E3D2702603DBCBB083E32B7923D0BFFD9BC154C45BC4A0103BDE5FE903D5B4F1FBD6071C63C230D0F3D809DF5BCDF00E5BD97D94B3AF4B6D03C4FAF093E101D963D4AE7D0BCAF01503D194ADC3CC2C28C3DCBD6B33CD441813D018C94BC6B3B17BD3A8E90BDCFD0FEBDDBD92F3D3336913D76DA99BDEDFD823D307115BC9278823D0A188B3D8D33303DF66DEC3CE4219B3DFC8FB53DE5430D3DF1B8CB3D6909853D57FE88BD372078BDDB69B4BDCF0B48BCF60D3E3DAD3AB33D969C1DBDAFA833BD0BC0943C086119BDFC1CC73D17F9803BFC3A023E480C903B608B553D1D8E10BD67EE5FBD3D3E563DA609713D3DBC56BDBCF4FBBC9E37EE3B816AF2BC1729B03D0773563D59376BBCFFC00ABC71CDC8BBEBB81ABD3ADF0B3EAF95243E62D1A73DC7816C3D0D9D30BD38494E384C406C3CE75DF5BCA87E433D041F3A3BE24C9BBBDDC0863D9ECFC13DD08DA03DF74F783D47318C3DF52F943D3970603D09AC333DF65790BC097D9A3D92E6053D6747073D7ADF543D511C893DE753343DE6C1623DD5CF00BDAA51073DED4E93BC4F830A3D9B90C4BC4182D1BC58759E3D1DFD28BC104A23BD08C742BD0DE082BC1312293D99BDD33CEF86E33C5FD94A3C15B89DBC50718FBD287911BD225DA9BDA701E13C6A8D98BDCC63E2BB9C073E3DE41766BDC3ABC3BCDB121EBDFC80F63CA9086B3CDEE87BBDF3AE89BD5E6C38BD925B77BDAD7BC3BD298F11BE2D758BBD43E296BAF11AC5BBBF7D3ABC6DD414BD835C703D6467EA3BC817EE3CC90E633D36828E3DA155063EC908DC3D4CEB0E3DE916D4BD689643BD4ED8943CF19E1C3DB534D1BC717BDD3A961F123D2E562C3C5331823D36AFA03D5A055E3C5C74C33B838CF93C39AB063E8E3CDE3C8FE3F33D7D7B833D3A1C743C3F0E493DA282D7BCC22A1CBD177C0ABD7841BE3C3FCFFE3CF0BE483A7C8D8DBD04FFC43CBB47FC3D5DC9763D82D4283E1FC2FB3DDE0A1A3C274368BD846D72BD8D39A43CBEC858BD38B7A2BC8F4D023C1127FCBCBA5BFBBDCE243CBD95639C3D6B29DDBC449DF73C78B38F3D8B6274BC5EFD23BDA65794BD83E9C13C7011ADBD388A0B3CA8F0233E758ABC3DC9F0A23CB2DC43BD272E413C5B06BFBD35E249BD8D1DA8BD7C2EACBCB3D614BDAD9922BC66151D3D4E4BC13D67ED853D41161F3E430C3C3E1F604ABDD09EA73CE724463D6EDAA7BBD6AD723B82AFADBDE73475BD57D85A3DA9AF903D683EA63DFEBDA53DB39214BD5947BCBCA99E04BD5B9934BDB80D583DE70A833DA8D916BDD1F13EBDED5C343DF1FCA8BC5B8352BDD1B80F3C75F6443E7B04363EBA5D2CBC7C4CEDBD4197BCBDBD4A0ABDEEAD613DC7C79D3C94C5893BEAAECC3D0C3DAC3DDD7EF9BCF58F8BBBF46A8D3DA3A1063EA4DEDA3D974CBE3D3808F0BD696B1FBDACCF49BD490C68BD27B9473D76AD163C573AF83C74EBA0BCC482BE3C402D9EBDCF4723BD691E753D3E729A3D0B1C863DAD829A3D3E4CD6BB1261C43DA995B33D8330B73D9DC1B93D8528383D85D1973C9DBD98BDB8ECA9BDB582353D1908A5BDF906A0BDFA5A993C043BD0BB6ED0CC3DAE6B453CD7AB0BBBFD7FBEBC97F6463DB9AC4C3D97CF83BDC26E17BDFB0D00BDBDF3B53C71C0A3BD7604B33AAFE32EBD79376ABD14ED423BA9D92DBD20BBBABD5BD56ABD3FFF54BCA555503CA7B29DBBEE689CBD03E7CEBC03D200BD52003EBD790CA0BDDD6936BCE174893C0C969CBD6F25FABCA8010EBDC41A3BBD1A2EFF3C269B103DFB51CDBCFF10C2BC8FEDBF3C36B51E3CE52789BCEDB636BD8BB838BD5CA76EBC64CE2B3D46463A3C9396913DCB23A4BAC8F08A3CA0A482BD5DA4003C6595E53CA2E92CBD6943603DE6C993BBD80FB5BDFEFA8D3CC989AB3D7F19CFBC3B21FCBDDE1108BE91602FBE1BF2B1BD53C2CDBD43AEB4BD0B603F3DECC31EBDF5DD783C6EF879BD9185C6BC5C24C73D8847C53CADB0903D06933ABD425668BD3261D8BDB3F932BD90645ABCF50AE3BD3D9EA2BDC7F6BBBC6770BE3C4645053DC01E023C6C0A083DFEDED63DFA5F4C3D50A11ABAA240293DD76433BDF23489BD4B867DBD2E6B18BEC36CDC39D290F33B3024543DD1F62A3DEB40CE3D7521FB3D392EED3CEA6A323DDC5FD2BCAE4AC93D0CA18D3DE0200C3E5EF1493D1A2799BD1D8B7ABDA619C03C45F500BD2965903DA356923D6C88343DCD993DBD91DF6FBEC13205BDBA31113E2618B23DD244AB3D61F48E3DBA5577BD304B4B3D20E2693CA1A090BD4B7E113DC4B3E23C1D7752BD81C35EBEBD2B74BEAC8C9B3DA51C073E89FC3D3DE1FC223DB28FBCBB3C40333D44B1B8BCB9264B3D5733483D2CCC98BDFCE7193CD41F54BC568D6BBD21378D3C9558ED3D1C8AAC3DC77D2C3DDEC9A8BC0E0B2BBD3C8F023D6BD3C13CE6EE00BDEAA114BD8A4A02BE33792FBDDAE908BE88B94EBCA6AD763DF2DC113E68A42EBD4860BA3CCBED83BCE1804EBDDBC0D5BD0FBF9A3C92EA24BDB79A46BD7E18CCBDF97197BDEC91B9BDFCEE8BBC767DF03DAF97FF3C854D1DBCDF3A49BD516468BD3C5D2EBD6A1CBFBD9EDB233C7E202CBC8167943C4C0F87BB1038203D5E8F3CBD48A974BD7C7E80BD121F973C4B8EADBDC59965BDE67D94BD493F973CF98395BDA28E203D560D3FBDE011C3BA2BE9EABC4F84E53DFC7CD13DA69021BD23FC4BBDAE31BF3BA4DABCBBEC5B99BD022C11BC6467BBBC88AFBEBC11FF5ABD045407BB74F35A3DB8F2423DBCD2753DFDB3953D6875823C1F60CE3D60D4D73DBD271CBC979E8E3D5BB4ADBCE949A2BD90E68CBDB2C136BB2CE5B13B70B11DBD331E90BCCAD6333DF16E8CBCE5E4943D47D8C33C0F07413CDF9C113D5999823DC9C9BF3C809635BCE9C3843D2F89603C09AA1D3C5772F6BCDAAE39BD8A684ABDAB16873D9FC695BDB5ECA5BDACEA873C9B47A23C479E40BD3663E4BC0AB3493DF2416DBDE4E0453DA65E11BDBFD61A3DEEC658BDECD7353CC0F11ABD989C0ABD3CA102BDA698693D431B1CBD07FDB4BC41B09A3C05593B3DF050333D6819693D60C255BD4C9EED3C42AD36BDAC32ECBDA0521CBE21F6F6BDE1FF4E3DDBDFC03CD868733DBAF25CBC7C77A63D40529EBDA426BB3B83994DBD5AFD70BDDF7AD6BCABC6E4BDAECE10BCC7B423BCECB537BD8432C93D569E4A3D1B663FBD361F5DBD0E136EBD2C19BBBDF76BC1BD07C18C3D7CD4503DAA2CB0BC789F153D9449E13CF539873D26A3DE3DD8739F3CBD99903D081457BC151EA2BD8AA79A3CA32DC03DF669AF3C56F8D0BC959F82BC77E57D3DEC80E03C7AB0DA3D76F9DA3D57CAADBDC8F7CD3DABFF3C3E4E8AB53D419A0A3D8A56DE3DE24A463CEE6771BB8BBE5C3D96E40F3D9F8D813D239F5ABD53619CBC6DC6F3BD5F2501BC7319E63D9735113E42FC053D2BE804BEFC5CFABD138F11BD4E8C163A0DD9863DDECE4ABD88A100BCD0C264BD78470BBDBDD75C3D1DF1443DF7BE1D3E33AAB93D5F80DEBDBB7516BEDF0704BE9CB2DCBDBB98CCBCF3EA55BDA5BD66BD9E1BB03ACCE68DBDE2E8CFBCA0FAB23DEBE3DA3D931B873DF93CDA3B891729BDBAA800BD6E919DBDBEE1DE3C1287893CA97B803DA50EEA3C58D953BD05A2BCBDDA39773CCEA3F83A4CCCC9BDA31DC3BCA90BA5BD10690FBD9B778ABD6DE94EBDA9182EBD240AF6BC9F21C53C3FC6E23C23961CBDCD37993CD53D89BDCBC4F4BC8CFC143C9C0B7CBC1C57A33D895F0EBC0C7F143D04420A3D6EAE913D4798E53CC08DEDBCE83D743D11BF8EBD85F1AD3CF4769ABD2712993BF9AE97BCED68A3BDE01CE83C27A3B83DF7E3263DE9EA30BB6500B03D3C3C833DED246FBCDE2B1EBD7DD4DE3AB164693DAD2665BDFC0764BD4DC4203D33CA57BD3391323D1AE707BD1417003D075623BC8E528A3CA5EBC1BC8D87E23C7E53023D06736DBD96BE3C3D51960CBCB85711BD3F9CC13CEEA418BD65C775BC887A3B3D893683BDA2E5583DF3934B3D573BF23B36ED5A3CF90186BD6C9A543D23A468BC6D236FBC5536223DF1A469BCB93ED4BA9C9DC0BC4661BD3C40C5B1BB5491433D460A7EBDE6183CBD5249A7BD486FC9BC29EF2E3DDAC9A93B7578DC3C6B36EF3CEABDBC3DFE9DB5BC26085A3C56E82F3D8F57123E6F38B8BCC159723CA5C71ABDF7CCA83C18F0823CFA51813C42A367BDE08C7DBA237133BD4A4A8C3DAD88B2BBAC6A003DD1A66A3DEA0196BB41FECFBCE33E853B46FEE73C5893493D25F7B73C10D49DBD8C3B163CBE4C18BDFF051A3D2DC4EA3DC73A893D3D5011BC6D62FDBCB3E2A1BDB1B52FBDB27A843CC469053EE4C1893D9BCABD3C84C636BCEED86EBD8409E33D1CF1783DAEA8B83DE22E443B81011BBE55AF16BE36237BBD491574BD5EB9D0BC9DEDF93D7319A03CF2A6BFBC8998A1BD3C846ABD9F9C39BD8FE5C1BB3A8A1D3E200E453DCE123ABD6163EFBD0D51CABC00DC803DC306873C7D3C9ABC9830DD3C2791083D9EE78EBCDD2536BD216CD9BC87B6A33D4B81063E361A0D3DC93A61BDC280EABDB70099BDCAA321BD114D7A3D795B543D2602623D12E4D3BC86EDA9BCAE7C9F3CC49F0C3DC6DD613D036D663CC546023D7F26BABD1247173C72D3F33A83F0C43D4BA4C13D3C219CB870B5AABD463D1DBB04D29C3B8F6FD1BB020B003ECED4D73DD5803D3E8873983D6E83053D30FAE63D5F13B53D39B5D13D7C920D3DA814EDBBF0BD69BDEB5EAEBDE5D90A3D896E773DBEE9153EE0305E3EDAD7853E844E633E71E6AD3DB3F3283EFC789C3DC7AE013E0559EE3DAE34713C097C56BDDA425A3D4D17B3BD80458FBD68BA0B3C704E273DD101EB3C6B76A13DF1029F3D9D4B96BBE4B63CBDAF284F3D9F916D3DA41899BC7C92B13CF031623A863ACB3C6E9E27BD827C65BDB10674BC443557BD0F8E4F3DCA4AD33C7FF0A7BDF5E3E03CFACD51BDCFF7B3BD5B4BFBBC49F9ACBDEEFA0CBDD82902BD33F791BD1544CC3CFE2FFFB9790D20BC4305D93C4D568EBDA382E1BBAF58B33C0BE9163DFF15383C00009A3CAC144F3D359B4C3D818A88BD9B8E483D2EED14BDC2381B3D86109ABD24BE783D4744503D1981FABC81A7663DB2F2D13B1B6465BD5939973C4DA660BDCDE240BD1154543DF956E6BB7CA929BD24926BBD72B1BA3CD123D53C8903E33B37F3033D2FEDCA3D3266EEBCF06EE13CFC0663BC7F7A94BDF30CA2BDB2FF63BCB244BBBD04E5263D0B55ACBDED5F1CBCDB8057BDD59082BD4847D33D98893A3DC8E7F73CDE3FC73DB9D9083DDA8BFEBC7636A2BD7370E9BCF2948BBDED777ABDA7D3033D18E70BBC1F04F6BBA600043CE33455BDEDCBE03C052BE03C58C9DEBC8D6F833D74C11CBDD1903F3D9311BDBA79A8CEBD99C266BD261329BDA4200DBC220BB4BCD5A94EBD775F02BEA2578CBD5583BEBDD47C6F3C535A923C27DD6F3C856C72BD91B47D3C367B5FBD8A6E0A3D2C68C03C4284143E63FE673D312388BD88F5D8BD211149BC5C9580BD2BFA503D0E3EB53DD20138BDAF38CF3B8DE1133BFCE2FABB6B547D3D700EB63D756EAF3D122F0E3CD9618ABDE4180EBE06BE9EBC45C101BCA5EE703AD36D813DA02036BD30277FBDDB9221BDF008FA3BACE1993DF777403D41F4193E7CEA96BD6E0F16BED0E3FCBC1C265B3DD1A9B73DC157033EFED22E3D6F6C18BD426381BDBF6FA4BD8ECB1F3C40E5CC3B8611483D85E05A3DDB5A54BC826EA4BD33E991BBA3CAEF3D9FC8103C82E20A3D46DC39BD5DE933BD174D6A3C9CEB3FBC9D2FAEBDA8D9953D9E17633D2A0AF93D842208BD58A99E3D92EEC43C2606073BD0415B3D54332CBBBE41DD3CFB8BB93C739323BD4BB29EBD6826093C14D0693DABB05E3D8A110E3E931B093EFDC2AF3D6C8AEE3DDA36F03C4D8121BD12A6D2BC4A9A57BD245C43BCA6DF823B658958BC2B699B3C89AB1CBDB69A5E3D0D758D3C8CBFC83BAE304D3CBE525ABC4B6395BD6E4E3EBBE253A3BD0A8466BDD3A27FBDF11775BC166C0ABD1665253D88618EBDD89824BD53D962BD0FE323BDB3C1C03C52E1A13CDF24ABBDCD4D2B3D66F553BC4E86983C65E871BCC5888FBCEFBE383DCBB20FBD79080E3B01C4AA3C511CA7BD0FD68FBC6F5399BD4BD2AEBDC60904BD7F029ABC87721BBDF51BDCBCE99C38BD45AF763D23E349BDEA178CBBEA1B2E3C1D9F1D3D56F7ACBC62F9FE3C8E917EBD0EE584BD12ADDBBC5AD0FD3CBBCF9BBC93B08C3D8E46DF3BD399863DCDAD373D942E093D0AB5EF3C69083EBD7A8480BC9A68A93C35C69DBD34D523BD43498ABD569D223DADEA213D45E8BCBCE1BD2EBDCFB061BDC94A11BC7381D23C5EA4783D45B7B3BC4A2313BC9CB61A3B1B6833BD2123F5BBB7D0833D09DA30BDB28AE5BA9D5B113B87E6983C5118943D797B62BC041043BB58C7653B35C2073EA667053E9225F03D13FDB53BF01E273D722FAABDEC6AFABB675FC3BC898A833CCDAD62BCDA2C5CBDA5E10BBDCF87B03CF1CA87BA84A7183DAF0539BC49ED56BD9C885E3DA347D5BD0A36DCBC6428ACBD817485BD9F66123C69DF843D09E5E4BC3884C8BB74E9313D8A34BE3DA7A47D3DDA4152BDF8ADB43D6915833DE003113D4090633B3A10D0BD55D009BDBFDD1B3D056E153DACFB803D5B45CA3CCF34323CCDED063CB6CFEB3B8E61BE3DA90B7A3DBE7EE33DB0F200BCCDFA063DCF953D3CCDB6CEBD394D9CBDE1F5403DA6CC2EBD1F61903DD24F553C884250BDF9E03F3D1F1B11BDEC5493BD76D02EBCF4B84FBD4AABA83D8B67313DC2C3ACBCCE72AA3CD5355CBD5E6B7EBC6F10EFBC7DA09CBDDCA50CBD5A07A8BD956E85BC44D8E03A321BB6BDF15607BDD4A6CE3DC455EA3D271EC03CB98F8C3B6F128CBB61E097BC52B06E3D699B823D66FA143C587A22BD923C38BD88CE033D847C89BDD406C0BDC3DABDBBFD01A73D345C7B3C387A7D3DD70745BD079FC1BC10ABD73CF174033D27D7DCBC475D9B3D082D0C3DB1742DBD1FBF103DF1AE72BCB6C7093CA10B453DF317B83D63D09E3C7E55BDBC6D911A3D66F94F3D10DD07BDCE91A53D985750BDAC0B71BDCB08653AF31693BD2B4A253C113B1A3D5A78923DDCF1873D8B6289BD619FF0BCC80FF4BB5EC0913D23A9B1BB532C9BBB2081453DB5D9C43CDAA635BC6783D5BCC4D4083D1A0CABBC62AFC3BBCBEFC93C96B91CBD5F738B3D455776BDFA8C86BC5BE486BD586683BB6D67773CCA85BE3CF5CC88BB96D1853CC8A879BA8393073DCF294F3D642C96BC63E5DFBB0A748F3BE3AB143C92D597BB59A58CBC8BC03F3CC9F236BDF71386BCD921B7BC988D603CC64E8DBAE02C98BD56BC063D8FF706BD95ECB53CF3543FBC59FE4ABC23C51F3D0CD3653BD8D51A3D42D64FBCC0BA6B3DC134B8BC5CF746BDCFED4ABDD5372ABD1BB5E7BCA51688BD393F5ABD8FC54DBBE3D3FD3A627DE5BC781A87BC8DC5043D7F7E5DBD74A0D33C679AB13C2F3398BBB2E7E7BD93C721BEF34D02BE7E5505BDEC75573CC0A3513BC8B3603C81830E3D3145BA3CD6C3CB3D01B2633D47C9143E20560D3E01E7223E4A5EA23DEDDE58BDD6742BBEB65346BE8FD6DDBD8B9A47BD0CA783BC566C1C3D8EA8903DD231DE3B983926BC847FD13C423C303D9B458A3EB120013E6939783CCD0AA4BD83A4F6BDC7E90FBEB23AE4BC5905753D4C6B823DBA95973D4ACDA8BD1F32E2BD970323BEAE967DBD0240303E467B713DD5398C3D1E84A33DF0C909BDCDF8F0BD9EDB43BA0EF7CD3CB98E8D3CECAD643B353BA6BD4818D1BD5A2367BE3D7384BD7CABDD3D2FB5133E742862BBC0A263B8F8C5ECBD2A80CFBC5C81CD3B614F4DBD6E219A3C3A68A2BD5F6CB4BD8C958EBD800BDABD5D155ABD5EEDF13D58D1DA3D2DCFB23CEB361BBD837CE8BD2CCF7BBB247C1ABD25775A3CE03F81BD3A7B1DBD1C5FA4BD8920B2BD353995BD054AE43D19240C3ECDDC763D621795BD167E82BC5CDFC63C086847BD8437703C078789BDBB44F5BBD350DD3C677DE3BD53B6C7BBA558A2BD3E2C273DCDF10BBD0F6493BC227598BD75BDF63C789470BC298D393C5C77E7BB0A07613DBA4D9C3D9E762CBD3E717CBD04EB6CBD0806B5BDA66910BB1060DDBB4C4F1FBD5B36163DFAD68C3D31AECB3CFC8875BD3EED11BD35696CBD27BF32BDDDDF743DD1C3693D891D26BC09A7853B7F38BBBB965FC7BDDC202D3D23E3A43DCDC3CABBA6D392BD30C996BC5DA7CA3C0E8980BCBF1912BD6B5F0F3D25C34D3DA4D82A3D5C5BFDBC6B0101BD14AB133DFCAA743CCA6F68BC2A46033C5471C5BC8E4127BD9C51E6BC2190AB3CB4B4AABB5FE0353D21309E3D2E28B1BCB7BB653DB837733DC1E4093DA6B21B3D0754A53BAB4C813D6F53C1BC1DE0B63C1B1A17BBB7253DBDBFBC4B3DD4331D3D9A5E493D89860BBDA56357BD0A7598BD41E683BB4C4E08BD21F33B3D03A50E3CD30F18BC3D825F3DAC8AA7BD82389CBDC8C04F3DEAEECCBC4093203D45AA48BD6B6A8EBDE85DC0BCC52A6EBB2B6D39BDC90FDBBB4414B3BC8D92C7BDA70E9BBD013563BDE1707BBD9C50393D1B9695BC1E86703C0319A03D180ACA3DFF66E93DD50A993DDCBA4E3CC5FE69BD34CDBABDAE52C53CE7862FBD733C0CBD8C9F9CBCB1B86A3DB693553CB667983B7FCFF43C93340C3D029A173DA582E13D5766083DCB1495BD2278FB3BE3E445BDC60646BD931A373DF8EA68BBDB6469BC5C9F4A3CB792813CDAE7C7BDA7E8ABBD5A3E6EBC8CBD303D8795583DB7B1F23C472C9CBD0550E6BD5BD0BCBCAED587BC007E903CCBD354BD8D9494BD661744BD33AEB7BDBAEFBABDA7770ABEF38C373EFC834F3C808FE2BCE14BC6BD182C01BE847EBABDF1AF6EBDC42D29BD83D0BCBD0CC3503C5C8BB3BCA5B80A3DC15C9DBCAA551D3ECC59823EAE5A9E3DA72EEA3CC045A8BA175410BE008592BB4F4299BBD9CB3F3D769642BD9064FABCDBF80DBD0D01A23A83CCD6BCF69D093E380B023EF7A5543D9F33A7BCDA4F4A3C4A929EBBEE1FBCBD571EAC3C2B69A2BCF3B389BCC1DD683C691481BDE9C7F8BDFABF0BBE52BEF2BD0360C8BC60572939CBEE0FBC2D15EABC67337C3D63EA513CB647A3BD5DFE363CBBE4CC3DDB58E83C50D132BDE54C9DBD4C092CBE82A395BD813BB23C3EA83ABDC27F963D5A49043E1BB2B2BBA0E31FBD3F7995BDEC1E953C60ABC83C0F3F443D9BB4E33D77144C3D8220153DC741ADBDC77EB9BC6EFA30BDBACABB3DFD24A43DDD9AD1BB7CCD813C65B0DE3CFC619BBD848E39BD80C1AD3D3E2A003ED6B3433D8C88B43C2F8973BD9073783CCF04FB3CB27C7BBC79B48A3DA0E37CBD223812BD46B5A9BC399FCDBB4B77CF3C8B5F263D405A91BA58D6323D2A5BF9BC1405B5BC247FEDBC54317D3C6A8E293D55C73CBCB2B1B23C5C47CB3CF57592BD08559F3CD060343C58D22D3DA31495BD6C295B3DDC50473D5F77B3BCAE36B1BDFCC9E63CC36E243D5DD136BDF896303DC18B8CBCC0888DBC9E78063C0D599E3C0F2269BD6A5E063DD99A1A3D54B889BDCB11053DD6FD16BDAA526D3C1FCBC8BA0CE271BCCFD09C3C6728423C0B073A3CEB7F4B3DF33A81BD7B1C813D6191A33CC465F7BCC04E3FBDD46E21BD0B5A84BD0EECC8BC4CBBA3BD54042DBD925595BBEAAA5A3D61F46B3D1917283DC37F43BD13C6ACBBF6A38F3CC5BD403D0A9304BD2D813CBD01F9863D9407033CD1DAA0BC1F861EBD55E2ADBC9A86853D391A9F3C578D80BCFDDD823D94018A3A517798BD709AA1BCD4DF6F3D42F29D3D891FD73C1DC7CA3D255F10BD282C91BDE3595BBDAF5E33BC4D32823D51FD0D3D8DFB78BD4FAD76BC885E4F3DB639BDBCDEBB67BD22BFD8BC9C8A38BDDFDA883D82DE043E9FF2BB3DB0D24E3D0423203D64116F3D9074973BDE9901BD798843BDC7E5B73DDACA923858DA67BD36D24D3DD47D203CF3C6BF3C8740863C5D29EA3CDA8D22BDE794D33C5F5C003C76D830BD57B9B93BB006A73D8BC1973CE007DC3B1DA1F03DE1665D3E8557D93DA640343D0CDDD93D5AA7C53CFD8DAE3D0F6450BD934D2ABDFFF0863C86380A3D3324D9BC9C9D1A3DADC3D53D12A43B3D19F0E33DC9599CBC930BC4BC85FD593D0C55083D9020FF3C117C4BBD59CE03BD39622C3DC2075A3D1596913D523A9DBCA355ABBCD624AC3C29EB92BDFE4D89BD6AD13E3DA0D2D13DED46843AA104B23C3EF350BB7D80643D5436113DB96DB43D9A243C3DDD30A23D84387EBC66407FBDF1CFE7BDECEB5F3C086957BC898CB03D49BC923D674285BDE698503BD3E27FBDE3C098BC25FB1ABD3B708B3D379CCBBC779AAABD7ADA97BD3CB9E5BBBCDF16BA4769CDBBA015CC3BDF4D633D475AB2BD3496D9BC43554ABD3CEB133D89F04EBC0885ABBBE16210BDC9750C3D5778AD3B93DC3E3D875B393D7E8838BDDB8E593DD182CABC04E57DBC9F5726BD2302453D57FD503DA9416F3DE51D583B9EA6D2BCCACB893D6B9E5A3C35ACBC3D12B903BAB4B019BDC7C62C3C53917C3DB989843D3A554EBDBBD1AB3C7752573D6C42153D43B189BDE1D70CBD032B63BCC7F73FBD80B3463D1B7AF4BC857D043CB06E363DA5A238BDF085C63C5B12943DD51BE4BC6BF8203CCF0CC7BCE5AA0E3D46EB22BCB5BB293D070E62BCB7C2343D02B35EBDBAF021BDF331443BED2017BD06CB87BDF59A493D6173BEBC27B7083D0F36A2BC640532BD95AF12BDE981153DEE5647BD9E714BBCF756583DA98B8BBD4564DABD02E884BC79BDBDBDEFEC533DB3A44C3DE91216BC847D4BBD481B0BBBD7EC5BBCFA0D2E3DF3C6933CC4FCC43D3E4B39BD86FDCBBD60BA67BD11BBF3BD2B2402BEFEA781BD9FF412BD9061BCBBE7D05BBCA4E2F13C129E923D3F6D563D3C86F63DCD9FFC3DAF1F0A3E4FA5F13DA8FACEBD9D343DBB64ECBABDC704F4BD477CB1BA678104BC04AA103DADB8093E8C67553D11F97F3D3B7A26BB63D3103E97D38E3EC90D1C3E5E5966BAD77C843DBE7EE7BDD967F3BDD9A451BD440F293D02E8A63D6939593DE0B490BD458786BD7E4508BE46F6AABC54FE483EA1ACFC3DA366753D94ADA13DF535AABC52C7F1BC4563A8BD6D02A83C5C728FBD5971A4BDAC29B8BD9C02C3BDC0EAEDBDDEA7A1BDA3BA7E3D30C93EBD0D725BBDD0889DBDE436FF3BD3A415BD80F5F33B578182BDF0BE56BDE29107BDBC05E1BC9ABF4A3DC4F8F1BD21A11CBC6E4AE9BCDAC1453C7BD5D93CB4C7383C57810EBD205130BDC76B0C3D83279ABD523E233D02C3873D3567F53AAC7181BDE5A8C2BD9D4D9BBCDF4D47BDCCE9A5BCDCEBA23C3FBD9A3D2C4F593DD166C4BC36F090BD20CA5DBDA2E820BCE444713D02387DBD3283AB3CAA6340BDD968073D489B85BC0D3D19BC653C32BDA2D05D3D52C36BBD2743853D72CDA7BC2F0556BDA00C423DB37816BD88A6B03CBE0B31BD7BF37ABDFAA7CCBC743D38BDE0C58D3C40A176BD92CE2EBD047AB5BC881C953CCE69EC3B14F538BD2607B9BCAF84BD3D14FD143C98631B3DFF3BCEBB39003ABD2CBE1A3D8C95113A3DA8C83CFB5D49BD88CD0A3DC2B5163DD800F4BCCB11ABBC33EF88BDF1A79F3DCE68383DB0FE8BBCF15FB03DE3BEA23CD684633DB603893C8A65163D99DE253D713E513B83EF95BD55AF24BCD7B7303DF3E70ABC218C513DE861843DF1269F3C4008BC3CBEB0D2BC757F8A3D5A95DD3DBB1FB53DB546DE3B54BA463DC1EC293DCFF1393DCFF0CABB2A88853D64319BBAECD0173DF496DFBCE7F64EBD87903ABD9FA311BD239386BD26EC82BC1B8F0CBD765C523D6DB697BD0CB533BC4BA7E23C61D190BD3A7A5BBC400A3E3DB21B98BCA9943CBDB780B53C68C18D3DB19AA53D6724E1BC5CB10ABDB0028B3D6A7E49BDFA9082BDAFDFEB3CA8853A3D47E30EBD551295BAC696653C822D223DBA91BA3C85FA823B0DC5843D99BEC13BAAE641BDC4B6043D733282BD4B136CBC1D764A3D649C0F3D4DE8403B3B0534BBC9DB44BD969634BCC4ADECBC9E5A5B3B4D43A1BD1B536ABD375AD7BC408280BDEAA3C73C25FA82BDF931353CF1D3FF3C189C873D79A36BBD6AB84B3D75709ABD24CC2DBD677767BD4A6961BC8E87FA3C5A26543D080ED43DD09A043DCA7C90BCF57F833DB8FC963D067D5F3D86D45EBD5F7B51BD752C003D04107A3D10AF753C9006A23ACE9ACF3B129758BD1C86B3BCBA07AD3D78DD8C3D145307BD13FA78BDB9AC26BCFE42B33C640C24BD6D683DBD0984A83DEB65CF3CB7245FBDA14630BD4A3892BC182FF3BDE5E393BD863590BD3633283D1DE3673D9C8534BBFA2A99BDE5EDB8BDC1EB3EBDE31AD9BC4A7317BD411CBD3C90712FBDBE3AA43DEB49CD3C91FA59BD77E85CBD20F28FBD3D56C8BCB33D76BDFB4F89BDA12371BD86FEB5BD587F2E3D65D46BBD0917563C8ECBC93D255EB4BC2EE92E3C96A774BB23F437BD26AA27BD6ECECF3C5CE655BC42402C3D6E25413DFF3321BDD275BCBCF040243D1A8BF73D6AE1143D6705F9BA451F9D3B948616BDC18DBE3CC84B6B3DFE3C133DE1AC0F3C4F81C93D023DFD3DC679B03D9F56293CA1CC2D3D9367B93D99C8D13CF100443D98F061BD4E15C93C14312FBDDCAC81BD03844B3C20240DBD0D6616BDB9F5853D0CC016BDEE20D73B7321D63CDCD7BDBDCB8D97BC6D9E7A3D2993C9BC3DE323BDACB3063D5DA1DD3CEC55363D98277CBC93BF5D3BCC08993DD079493DE80E883C310C1CBC487E9C3C83CFC33C00B282BD5062C33C347E55BDEBA11DBDDBA0D6BC870AED3B5135093D16578EBB33877F3D0F3F58BDB93D783D899972BDD460DDBC179072BD0340EDBC63EDA03CB6FBCE3CA562863C26919D3C79F1983BC847A0BCCE623FBC2DDF99BD4E91123DD0E1D0BC7B77EFBC8BAE013D6F051BBCE3D7203D9EF7AE3C70608BBD0F1C003D77E41A3C52EBDEBC577C8ABC60F046BD353AB9BC27FE323CD365363C3D0C493D7BE9C83DC594453D4C9A933DA5F5643C1BF6CBBC8E35FC3C4EB900BDAE5D72BD0F763E3D14744CBD52BE9C3C690564BDBDE0BEBD53E238BDAA5E92BDF61C9A3B508818390B9B60BDC3C4D33C5E025CBD0EE9363D7E84B83AEE5C6F3DD6AE11BD17E857BD7C31313D626082BD52B449BD791480BD0A89BB3CB8A3023C844796BDE0BDA2BDE755F23CEA6E4ABDC4F4FA3C0FE5973BE02D44BD43E4FFBDCB37B7BD006FE63CF81F023E2923E33BBF344FBC9C5391BDA2F5E0BDD5F7B0BD15A93A3D339C8ABC75343C3D7A2080BD7B8C93BD057686BD8AF70CBDD8C83F3D46B39DBD7091323C06A6913D9A66333C1BE4C5BD7C025BBCCA7ED6BC4F1686BC808826BD223D103BE56E88BD1D7A033D7104843DEBF210BDDA3D373CB44F673D19EF913D431DE03C2A85563D344EACBDC0A39EBDE157FF3B8E15033D8FF4E13B4B79BE3D0900303E12E6373E2A280BBD869A36BDC8AC513DEA25963D4175873DB730423D147BF1BC6BA979BD51B6763D83C1463D70C4C83C3088623D3174863C740A10BBE59287BDADE3B8BC33DE303E5F573E3EC76D183EB0778A3D9BAFA93DEC5380BC6E6AC53CEAD0943D8B5F27BDD0A07FBCA6D295BDA27368BDE4DF0BBD5DE5123E10CC163EB16C003EE1619B3DB73B093DC5A9C1BA53D1553CE56890BD4164CC3CBE99813C92C99D3B4DE1B3BD4077CE3B5A5D193DB8EE91BBD94132BB2AB1AC3C501183BDD3227ABDD50D423D7E15253D6A6B6CBD480842BC2AD211BD9AC24BBDD035A3BDEAC17CBD2F9212BD244907BE117A13BE148A00BEE266D1BD202650BD6B9803BC97C240BD07E0A3BB5D78D63A02B24A3D5BC335BCD1F8DA3C0CE79C3DF44661BD6DD6DBBC2BC1693CA38092BD196C9DBDAF55AC3CE9BD143D6B2154BDA2154D390396303DAC2D40BDF83FA23C663774BC03A4EABCC9B0CA3B42255ABD233CD9BC928D6D3D4C6E66BCC2D4C53CB150403DADDE5EBCDF438CBDC2948FBD0D33D9BBEB86F13CCFD20F3D7A28AE3C49FE26BD584B75BD220295BD257302BC229AFB3C9803D5BCF6ABCC3B67D34D3D3BB01F3CD4DB1ABB45E8723CB6C2663DA3279FBC43883D3DFBAAC63C0ACD76BD6C89043DD97F893C0E379B3C28675A3CD1F01DBB7510FE3BE4DF00BD3EA4AE3C8BED113DAD9920BC2D9B67BD81C512BDB9E8673DEC84E7BCC6ADF8BCAF4CA73DB22C903A65BE9BBC18976B3D6E8067BDCFFF1F3D93900F3B5D640B3DCB47B23B1BEFB1BC1886873D55D02E3ED2352B3E39213A3DB116A4BC83B69DBDC39C1D3D76DEE8BC94693F3CB324C93AB6CBF63CFF3998BDF12B393DA3C7053E5FBF0E3EE62B7DBCE209AC3C4E4D2FBD55F8113C808BD0BD82A5E7BDFEC4CCBC39B1873D9093C73C934E5E3D42B1CF3C237D84BC8BF3C8BAB49D9E3C1BB470BD847C56BC15187ABC3CC4DD3C9BE429BD060934BC5018263D68D0963C2A7245BDE7617D3DECAA993D957DCC3C988CA03C9471153D6FE23B3D3A5205BD322F383D28B6A03D67AB563DB296B2BDECE9C2B9B3D966BC9605C63C4BF1E63C9A0972BD56F6ECBC382ECE3CFE8C7CBD1BDE29BDF98C91BD9C82B1BD53EC603DFD961ABC75BC963C2A9B4F3D140E343DD3D387BD8DBC42BD053B2ABD3B77A0BDB2F983BDA69E503D879B63BC2AFEAEBD27C7293C01D358BDBFD601BC73C0983C3BC1373CA621283D91707B3D447B583CF70EE7BB04262BBC73C268BD6C14213DB58392BB686CA6BDA2E8343C9220A13DA0EC9D3D6E8C733DFD1E103DD63BBCBC64DDAF3CB8B38F3D1F2D50BDC31AD33C2F5DC03CAB680ABD03D380BD4002BE3CD0F6AF3CF6B96D3DCCF7453D3D03AC3D0F167DBC39E930BD8380663D5100C1BAE724393D1BB19C3DBD6146BDB81DECB9C623CA3C0136123D2061F23B0971913C582607BD60DE8C3DAD7C91BC69FA68BC4DDE2C3C9A2296BD17BC45BCB65947BDB91F403DFC3F7A3D1F45593D13289E3B79C008BDF60B673D40E5073DD665013DBFDB2ABD131F0BBC2A74F53CC531F73CAB06783D765783BD448B78BD4254793BC0C111BC8E9346BD639B563D3C8F15BD8A36F83CF8500FBD156B74BD455C3CBC612558BDE679C83CBDCB2FBDE61CE73CDA7F42BD41A5E9BB9C3A27BD9C5281BCA5CAB53B0A2FF1BC6547C3BC6776953D27DE943D451A4BBD477F393D2D356DBDD8A80D3CE9833ABD541C6C3B708D62BD94A9B33C5A52A3BCFC29CEBC0EE74FBC975F9ABD421A3DBCABD8833DE032633B7ABED83CB3A5B33C8B44303D728D3C3BA483BBBC967D0D3DE088193DC9A7313DFD686D3DF51F823DA1DF093DCE39073D01821D3DF63A08BCE2AE27BD2245553D2D301BBD6A3B01BEB673FF3B9559833DF8C8E43B7C60F93D4869CC3DB353AF3D8DBF34BCC949103D02BD053E657B173D861C65BDD99184BBE0A382BDA6C675BD94AD923D8448DBBC78B61A3BB23DC9BB7C0C5ABDB7025ABDBDD5EFBC1C8622BC264C7C3C939020BDB8B26B3DA7F890BCDA8F183D19FCE13D38540D3E6AAAB33D5F6E833D62E3643D22CF86BD429F5F3D708A23BD1CECAA3D8D1A8CBC7E3B1ABD060131BDF8CA2CBDA4CC803D510F193D0FD8E23D263BCF3DAFF25D3E6CC9803EF57E933C1DC3D13D2A004C3DB60FF6BBB5473B3DC5A2533CCB1A723D4406A73CE0E71E3C092985BCA25DF1BD7718A03C0123233EBB404D3ED556D23D3359BDBCC72430BD54F3B5BDACBE59BD6F2B01BBDAB08C3DB93EBA3BA5B2C2BDBDD9E0BD644B33BD7BFB963D56C0E83DF0C8903D3C2244BD8C1EE9BDFEC450BD41F798BC65BCDB3C084E59BDB2F0A9B9F465C23B5E532B3DB9F3A13DCC0A6B3DAF10233CD92C823D8F3C65BDB7E231BD48D7E43B8F76E9BCE3F9DABCB96A4BBDC4F48C3D9BA2BBBCD27817BCE32FFC3C2D01CE3DA12D113DF537E5BDFAC2C4BDDAD47ABC0C8F04BC17A5B23AD6DFD53DA5843BBC9E33A03CD143D73BF193403D76F37FBD82B572BDFE8D1F3C310FE3BC489AE1BCB1A643BCDE6E17BC655C333C2278653DC7C5D23D3AFCA5BB9E08953BA4CA463D38EB953CBC3C6FBC8D70343C784921BD719AAEBD42D0323DE3D717BD6A69613D6F16B83D5FF29B3D99B3D73D18DED93D40100A3D50DE0D3C5DC5183DCE221EBD85EE25BD1E6F983C795F4ABDD32C4F3C78D88A3D3E5833BC260043BCDAE89D3DD91B733D872426BC51049A3DA0D10EBC7EA943BCDA5D2DBD62390F3D83AC543CB8B4B63CC543473D76BD02BD38ECC43CCE4396BDB5F03EBB844988BD88365A3DDC679BBD083A43BD30680FBC64DDFCBC8C8B8FBD523C243DBE2AFEBC5AB24E3D3455D73D195E2A3DB2421B3E6D7BB43DFE9E0A3ECA2A573DA3DE0BBD8749E33C81F5F93C5E4F12BD280D7ABCBE388D3D0B24F03DF00FB33D933CF03DF52F4B3D16B9B53D91A1883D587B6C3B3E5E383DA5FC60BDEB8E353D0F8963BD20E99CBD580FAF3D75C1173EAFA9B73D899A013CE09808BE026BA6BD77D527BE4695F0BD1042ABBD858E1C3D746D0CBDD6138DBCF1748FBD7B0D27BA2EE493BB8CED17BD41C8A4BDB3244DBE2F9F7ABD212A0FBE887B71BDA05C0CBEEC74F7BDABC1A1BD9C7347BDF9C68DBD130501BD86C2003D2896243DBC8305BE258D18BE0EE7B5BD1E38B8BCA8785BBD39D495BCC66E91BD394A00BE5FB88DBD8EB413BC8ABC90BDE2714BBC36C0AB3CEEA4CE3B3E268B3CC56D33BC3A53203ECF50B93DEC18963C0C02683DABD2533DE2667B3D5EECCF3CA747693D5A6BCFBC9BBA4CBC9EB5023D6685D6BC0AA84F3D3CC1733DBED37B3DA8230B3E3F309D3D8364003E951A4B3D07653C3DF984E83C43ACEC3C958561BC514789BC4F046A3D2EB416BD86B8DB3D402A443D82E3D03C20E8133ECCBAC23D4736903D2726423DBC420A3E4FF2993DC3663E3CBDA49CBD4F2249BA3A3C87BCF9B2C23D8B93CF3CE5341D3D28E29A3D0EC67D3DFB8BB63D6D5A0F3E743AB03DFB4F103EC2F5A53DD9A4A13BFD9C07BD5FBDA53CD2A4DB3B8BFF2FBDE5130DBD0D0B9E3DF5C2823DCE3F153E70250F3E16C50D3E8308BA3D3F57063EEE86F8BC85C4313D9C4307BD80DC623DDE6556BD80C0C0BC9645833DB16827BD4DF72BBD7881DA3C18B242BDE6CE833C8F61483DB39FEEBCE27887BD4670533DA23DB33C0EC8433C28718EBDE83FF43CFBE1DABB57C043BCFA38CABD0D95F8BC2C9B7FBD50D00ABE64B4A8BCE42215BD4761DABC463CA13C0854D53B6851083D2E9A363D79E615BD41327CBDEFFDD9BCCA9360BDA3A7A3BC5A0ED0BC34A518BDD86EB6BD5E3DD8BCDFE9AEBCFE217BBD7E263C3C672B8FBC305F90BD1B8E3F3D2C9B93BDF86488BD95D0B4BC1732C0BCCA2AEF3C389A55BC78906FBDB8FDE2BB77C8D63CC15686BA61462F3D986CB1BDC4185ABDAB39B0BD3ED1EA3C58FFA4BB5B42A9BDFE8BE2BDA40403BCFA56D6BD09C6D2BC0362D2BD3960CF3CA761543CC1250E3DC19A023C5CC699BD17B1A6BDE88F9CBD6DD202BEA3629FBDEF2382BDB9A53CBD86494B3CA6BF213CD2E43CBC62DA7DBD5C26043D66E197BD81537CBCBEEB2ABD32A70A3DD2DDCEBDF7F9BBBD064514BD999E2DBDD13C8FBDE193273C16858B3D7D66AE3D34EA9C3DA79A843A8FCA75BC030DABBD3C1A06BDAFD7DCBCC4FE813DD83FE539DE510D3EB63AF03DAEBDA03D6742783DC497983D7867DF3D7D9EAC3D6114263E3A8A83BD2CF2093D9CBF623D3296D6BC03871F3E2A8F193EBEC8283E3C0C883EEAFB943DF56DC43CEB34463D30D31C3D9EB3253E9EE4063D11CAD13C3FC8683C75F3E8BC56A4513D960E6E3DF4B50C3D00AA5E3BAC67D2BD8D2F32BEB5EB92BD4C4FADBDB0BA34BD8320A63C2EA30FBDBB3A3A3CE3D3D4BBE3EA6D3B833C47BD29EB36BD9C0C1D3D812A79BDE0C0FABD6EA345BE6C360BBE2F3501BE6FB5873B8362BD3D42CA5CBC06B4DF3CD18D523C1E78A9BCD586473B9F5715BD1CF91CBDE19075BD9BA532BED3D228BEC49671BDC6E23EBDEBC2203DE1971E3DC87780BDC3C5DABCD073D03CAABC373CBC2F77BD1294C03D96BCC83D851FCD3DFDE393BD26A39DBD23C31D3D84A606BD46C500BCF2F59ABDA5D132BD1F682A3D486A9E3B047098BDC804C3BC3C1ABC3D2A161D3E81B6B23D491A553A5209773DDE4D203BB18B62BD4082C5BC0A3C32BD4DA912BDE3CE1B3C761A023D79D88CBD3A58E5BD19960B3C275E4D3D96B6D33D5816FD3DC4188A3D5A0DC33D0DF397BC7AFABE3C9CE9BA3B8DD7EABC7C3083BC7FC902BA024100BC48278CBDA774F43C035A523DB7D6393D5768CE3D145BD53D03A4803D16A04DBDDB7A25BD32CE91BD5E3336BB62685C3B2B3C4EBD38251EB837EA933CAF0D74BAFADE1FBD484304BD4D7110BDBD1AB83D273D6C3D36A4503D27FCE2BCB673313DCB79043D943EA9BD3EC981BCABA62DBD42418C3D3B7E35BDC31406BDC97DE5BC9E5A8C3D4A86683DD53741BDD9EB8DBD54E85E3D82B7573DDB738E3CA2D65A3CA8B14ABCF2B7653D0E47063A559DE4BC00C0D7BCAD771A3CE6F1B4BC2C449EBD06523EBDCC040B3D3556E83B1EBF3E3DFC2C113D78C781BB1728A23C84EF8BBD772BA2BD5C48BEBC7C37FEBC731945BD1DA58BBDCED4C9BCBCD8903AF5A21C3C8C30093BC5E957BDD8420B3D800563BD1550823D0B02CEBC42A38BBC7F9D0B3D98B951BD4F6B98BDCD5040BD35E22E3DFFCB273E7D99063E01724E3C3977443DD4D503BD4D326BBD142D903DBBAFD2BCED622D3DCD49A83D9E6B7BBBBD59EA3D69B53A3E9D3FC03DE93B803D46B0CF3D18C8A23D94FF733DE254D13D7E1E9E3D34A438BDE74E823DBE9049BD7C78203DC7D68E3DE591113E8F70373E257AFB3C7C7323BD20D71D38A0070F3DEE6E223BBCD5E53CFEA5E3BC99507A3DDEF6FB3C7920713D59C9B93D402DA63D0A9172BD92C89EBDBD5BEABDD01ED6BDACC831BC3A1A37BBB1404C3B4B50EEBC758F1ABD79864E3DDF9308BD8166B0BD7CB3A8BD497D8EBD0FA610BEDEC324BDA62F11BED38922BD387AD7BC1CE29CBC6D9043BD015AE23C437462BDCE4A823D61BC99B94A6B4DBD8CB75FBDC930A7BD54088A3D6AED86BDC956BDBD367AFE3C40C3F8BBFEB4C0BD44D796BBFA16D23C279A04BDFB3D6ABDC9EE67BD306D063C2423F23CCAF82FBDE736713DAFF2A7BDE6D6A13BB2EF633D36B1E73CE14A0B3CE77420BD9B8120BC6D0C843DA805583D0266B5BB3C0321BB6797EA3D87056D3C6EFBAD3D208C3ABDF2D51D3DF1FC92BD32D58E3A0A8420BDF4D6443D4D51B0BC2AB88D3CE3C208BC2E0DC43CF33EBCBCE7825F3D641F053D2682753DC7328C3D5578B53DD12D7E3C06E6B53C553C903C0DD2943C6207503D6AE88A3CF297E93BAD23D3BC5388683BFAF6693C9D4E9F3DFB178A3D02FACC3D11E1B13D8690AC3D0B12833DA76D61BD15F146BCA660A4BC57821ABD53459E3C8A00E43C6710DC3CD2E76BBD94759B3D0F29CDBCA575593D45B16E3DDF94C9BC1672C0BA30E638BD61D8D2BC45A625BB3799E0BCDC100CBBCAF503BC9B8C0C3CE37EAFBD59171CBD77ADA43C5C7402BD42995EBC905C1ABD01D580BD9262B7BDF22723BC4A7355BC687DA73CD01DE2BCD5300F3D843EA2B935AA8FBD94A559BDA4D9DD3CA7CE4A3D014A9BBC0C706C3D3619473D68629B3CF75D0EBD4D66BCBC644A0BBD4A44B5BA11AD8CBDCBCD113DB2A6C8BBA330A83C1B3914BB0778963DDC486F3B7B4C463D2A8CEE3A48A1203DBE8E323C7AE650BDD15827BDD46AA2BD8D1A3EBDB4FBF93CF2DE73BD60D2363D7283CA3C5893E4BC615476BD69F384BDADF441BD5A09A4BD43C8A33B461CEEBD6E1541BCC547333D6141C33CB1241EBDFF18FFBC7DBCBABC84C187BD84221C3DB6901A3DD550FDBCC790A0BCCE2506BDE7DBECBD3FCE4CBDB491B5BD945AC4BCBFA69DBDFDEF69BD252D4BBD389A9EBD9BC10BBE3AEC87BD9B31D93DA46A093DF97AB9BCEFA0B23C4403D2BDEBDC44BD9DDCB0BDA2B370BA6D4E96BD43BBA2BD99A3CB3B7F1A6CBDCCB528BEDA5F51BD4EAF013E3CB110BC33BB1CBD5C8835BBA6F13B3DCEEA6EBDEAA85BBDA4BFBABCD3BB71BB552469BD57D6403D46A20EBC21A5E7BD0504D2BD7307083E7E5C5A3DAA5DD8BC4A33ED3CAEAA11BB916689BD65590FBDE081893C8E875CBD7485993C69A8FFBCAA497E3C250163BD013CD23D5328243E73E0F0BDBC8F16BD1F1AC53C6131943D594C49BD3B6207BD37C67CBD99149EBD16AEE0BCA47B81BD727B0CBD5AD6203D68AC263EDC272F3C9174AEBAD11B2ABD442BE33C4BB64BBDDD6D2BBC233F0FBBDDEDB43C16E85B3DCAB990BCA05D4DBD5795353D0898213ECEDB2B3E4843C63D4AA5BDBB47640E3D633340BD9ED0E4BC608D64BD97CA173D6CF0A43B02890C3CFE18753D1AEABB3D1ACD743D45E85A3C2C7A62BDBF3221BD3D29D9BB290326BC4CDAC0BDBB4530BC717124BC65FE763C9E34EC3C2C6BA338F35A82BD01C69FBC5F88A63DAEBE24BDB43537BD2057D5BDC71003BEBA95CFBD4AFF2EBDD69B42BDCEC58EBD788ED7BC4B270E3AF04DB43C250C863B4BE36B3DFD341ABDD13F9D3DC651453C13D930BDCF8DF2BBBF6657BD1C1B113CDE13FDBB718F01BDDACA34BC42959FBD4A176D3D47F6D83CEFBE153D29384A3D40BD453D7531CD3CDDE3363A8F4244BD2162F53CF8176E3DA98253BC14A35FBD5630713D95AD1EBCB6ABD0BC6F938EBCA50235BDD1D259BD05525D3D0A5F513DB368ADBC3E36D93D7A72A4BB0753A13AFF1F343D716D3DBDCE2EA2BDB230C73C305E8FBD627447BC1FB71F3C28CB6EBD5EDE28BBD63C063DFB53913D945FB03DBAE2003E325C153E9821753D2C3B873D37C646BD2618EDBC6B3A8FBDEE29C7BD87DCF6BD9AA4B6BDA08CB13C3634473D6082A23D7D7EB43DAAA0AE3DAD63E23D41FACF3CA2EB983C21AE703B445158BDE0AB84BD95362FBCE234763D3E8D123D0D7CA93DE358AE3DC6AF0FBD94247DBE71E433BEFA5E51BEF4D022BE0FC258BBA07BA93C6E220C3D1E01823D5CFA6E3CB1DCD33D3A9A1C3E2B7D073E2BCBEB3DC30CF3BDCB4E66BE427B38BE387045BE437203BEFF35DFBDA26168BCABBA63BD50A0613DDFDCB83D98C0D23D5DDD913CBEE6D83B16FC403CDE1793BD56A3EFBBE385F83D260DA2BC3B00603D1EB0743DDC65AE3B42AF89BD007FE73A5981653D19E788BD56F10BBD8B8E45BD51A0D0BD5CEBCEBDC40984BD1854A23C0F8C453D7528003ED577283DFA2981BD355EA8BD6CAB76BDA8ABC8BC3618B8BD0459F1BCD945B0BD5F1BA1BDA7E027BEE01CA6BD08F3D43D65C4A93D49231D3DD0F425BDD67889BDB0830B3DE6F81F3C446CCA3B2191D3BD4C27F7BCE8960ABDFA9EA8BD26D7C43CE22C913DCB7E0C3D94FA4F3DC500113D0FE45EBDC715E33C8A55013DD4125BBD82B050BD144029BDE5C531BDB23F9C3C30E9913DD841893D1DC7933D3176013EB965523D811DD6BB4CB3733D8573333D7F3F463CCF564FBD427F6A3CA129253C2C6EC0BB2ADA863DEED6033D83F4BB3D0175623D182C083C15E73EBDACADC63CD825A6BDAF172A3D7932503C2FB0D6BC987683BDEA0A983C40BA9B3C4EDA383C14A3C73CE05B623D745BB63D81CCBFBCDEEFBE3C4A44E4BB6B72B0BC1FC487BDCE00E6BC08B594BD9D6E93BD116632BD78C3263CB5F277BD05A23CBCB74707BD96AE873D28638A3C31D68EBD27F16EBD066C29BDB88F21BD70BE81BD6A5731BD74E8E5BB14721C3D57208DBDA1EF1FBCECC951BD480232BCE299143B9223BDBB41B8F7BB155A303D44003C3DE3639A3B024A873D147888BD86261FBB07DF9FBC8DD5243C47B3643CD9883BBD791DAC3D1BFF5D3D30EAA13C723A193D49B53CBDA4954D3C2E7EFE3CD240063D62BD44BDBF561ABC07F89D3DCC98973D3C27343DA2D7C2BCA9F1B9BAB1CFBBBA8544BBBBD0A3A0BC0B798F3CEAA9643D4AED5ABDD7E266BD0413063D88E3A23C1CA266BC75B8953D050C953D19529B3DC985093E9A85DD3C8740083C40B372B9DD1E03BCD84330BD0070DCBB7A100BBD3C49613C9A279B3CA19C8ABCED72B8BCBD984DBDE7197CBD75ECADBD1E5032BCB6D866BD537169BC9DB788BD1277E5BC0692C3BCDCC1FD3A2B7971BDB6CC1BBDDF73C2BD429EE03CE042B23C780A9BBDE8F50FBEF0E4523D4CCF063B66F4173D141FF43A4C99E53CDC382C3D78C00CBB32980ABD1D85B9BD83F2DFBC34E3953B273BD23CA8AB033D8DA9B83D3ED9983D0E23A13D625101BD02DDBABDBDCD61BD401984BDDDE0853D364A8BBD5F78153D7C76BDBBFFD00D3DEFCF883DA09D523E036A8E3D31D0543D41D3E63DC830DABD9C76AEBDC39D1FBD23E8463DCE8A0A3B3E7E4BBD742DD33CF225633A064B0A3B7CCB313B34BEA63A09DE973D50DBA63DD13325BDCE9A2DBC14F0B0BC19581B3DF72C16BD782BA5BCCA66CE3C0890CA3DF514DB3D104A11BD525091BC545890BD0C59BCBB020B103EEF8EC83DBA36FD3D9A21323DC91DB63C5450313CA28C033D3AF6F33B8B99A73D8A728E3D01880A3D424152BD921672BC58B315BD977C98BCF0DAC83DDC41C33D945FC03D73FC563CD36F5FBD01411A3D6B1130BDB86473BC2F2172BDFE72BCBD1E97183CAB0FD5BB046092BDB4C1B43BE46F09BC74D5283DA29A0B3DFCCAC7BCD639DCBC5E7FD1BC08160CBDA3FB85BD8A358BBDD2EF91BAE0098ABCB0142FBDB63170BDCC84383DC30D813DB148553DD9D7DE3B4A1F6D3DE6E3903DE84EC0BCC02DE7BBC1ED4F3D1CA012BD9683453DD33E96BD2A8F7EBD2986D3BC103F06BDA9B3B7BBAE92043C235DB63CDF1D3FBDF9232ABC676BB2BC50DD5BBDFE73F9BBB7A6B83C23E2903D0AEDF5BABFD7993D564AEBBB4484F23C6C79BA3C2240D9BCD5318BBC3258513D07CB7FBDF1297FBD50A3473DCDC275BDDA786F3DCC323C3D5C1DFE3DA9C4DD3D0FC1103DDE461A3E09FB593DD070B03D32E9283D5F61A83D708D113DE23A66BDA0FE1ABD3D2BDDBC92D86E3D18C93C3D5A3382BD642E1FBDF6D38ABD642969BD55F68A3DCB8A2C3DAC6013BD4DF8213DA8B4E2BA36BF143D7B01303D8026BE3CEAF19D3C7220133D8FF782BC187C29BA5D67083EDFC2673CEA2D1ABD082FB1BDA5D619BE1C567ABDC0F73E3D08A899BC5A9B4F3B65E524BA9CB421BD8E11D83C5BBD3FBBCDEE843DB82BC23DF68445BD800A07BE39605DBD749D91BD7AD092BDF48AB73B907A80BD058206BDADF3853DA2BDC23BDF43ACBBC3F725BD83ABC3BDF5A923BED6A63CBEF6653ABD704AB13DD3CDA3BC4459723C784C6F3D881CD8B95941033D0CCC3D3D1A7EDE3C10BA613D65CC343BDFEA1BBE46AC063C8ACEA13B4190E73D03E4AC3D1536BF3C3DEB963D2F33923DA285DC3C665881BD66CBA83DE623853BC7FB933DD7529C3D946A833DEEE43A3D2E55DF3BAAD7EC3C983C703CFB1B5DBC478613BDE6B65C3DAEF2F33B59FB56BD2AB0853BFF2BA03DD06E073EF240323E2D07DA3D7836523D3B494F3DF41ABC3C8F10FE3CCD4254BCEC0467BCB897FBBCE8D7243B98F345BDC2D842BDF737D13D09E7C43D47372B3E8F46A63CA387313D88DD2C3EC1371C3EA45EB83D7278393CE078D0B95EDC93BCFFD3593D343EBB3C6A3880BAAD34C33C4F146ABD38CD523BD3891B3D5BEB8A3D40C83F3DC002833CD823493D174A143D63BE44BD759A28BD04DE033D711D7A3DB5C4163D97AF3BBDFA464F3CECB392BD5796D0BD8A9FEBBDB65010BE58EB1CBCAA9B3A3DE662E73B27A1E93C129D733C64A5393DB7AB583ADB47613CD5403CBD51089CBDC1CEB0BDAC2E04BA9945EEBD644E1CBCFF7F6CBD3D119D3B7206B03DFE6B1EBD2EACFFBC9CB734BDAA6E1A3DF4AE60BD20522EBD8DCE0A3DA5F88A3D848C06BDA27C273D3A691D3CE88D33BB25DEC7BCA5F6913DC11F67BC2F9D883DD6D3CB3C189046BD0FD180BDD7AC3B3C3446EBBCC037303DAA2091BC05E56FBD9626993B79482E3D5334A4BD8FD598BDFC9469BD146BF73C57D59DBBCE8C5A3D42E68EBD619342BC8E45D2BA72FE5E3DFE7EE3BB50B0993D0C5403BD7C8A80BDEDEF0A3D09EF57BCD7ABB53C2C01F23CF047B63CA3FEA5BD6099AEBD238E23BD82E7893DC6FBB53D451DD53DF089AB3D4E80053D73D6B33D5B0A4E3DF3BB32BC95A150BD13BC7ABD4C72453D06A308BD1C3C333D2590453D845AFA3C1EBEB13D163ECEBCAB459A3D4BC41FBBCAFF47BD215DC13C488673BD9FC89ABC57EF8ABD90A0B1B8ADEC0FBDF2C1083D74C599BB3B36693D0983A1BCA2CB183C93F8653D3B3DB73DDEAFC23B3218AE3D2443E93D5C191C3EA2724B3DE968CE3C0D4DCABAC7F8063DDEAA3A3D0D6EB7BD22BC833D51E80B3DBCA256BD98EF7CBD0EA1023D3263E33CCDA1203D03E5903D746B89BC40C39F3C6A471EBD5AF0CABD856EC0BD6E79143DCA64D93D8B6D853DBE9AE7BDC539F5BDD6C7CABD82C86A3B784A773CE03CEB3CC3DF603D098926BD82ED93BD31AA98BD842D5D3D0572BD3DAA98913DDAA7903D1F871FBE965433BED44500BE6D146ABD9D11EABB0BE6923D26CA88BDC5B84CBD084488BDDE22C03D44081E3D29594ABDCEC7C1BC642246BDA7AB57BDFB8AAABD4C6A1DBD04ED213DA46DAC3D74ECD83C3FF530BDD0D4E33CF2F04CBCAAD6A83B3F1E043E25DE213C1047063E2F2781BDB2368F3B6926D03D79B5BC3D1169003EFB2F653DE054BEBB6D81AABBC49D66BC1218D33C0B07F4BBD4A94A3EFB33693EB95E973EFFBD173E49B49D3D77B8203E3DD2953D20DBCD3DFC97833D0421283D448F7DBB58558ABDA8B530BC74080BBDA617963C29C956BCFBE9ED3DEA78B93D911EB93DAAEBBD3B33C7753DB56D11BD836774BDAB7695BD00C783BCE45548BDED0356BD57B0BC3C98B809BE37B1D8BDBF573A3D6B6EB33BAC675D3C63EF68BD22CACB3B7F49ABBD7B4506BDBA3B273C85E841BC367054BD2369073D51F0023D0DF8B4BDE75784BD6FF6A4BD3A9D65BDA868473C907E0D3DE2E4A1BDAA7E32BD569200BD4E65613DD05435BD309B38BDBAB0283D30D5483DF0898FBDED437B3B99BAC6BC2FA25EBDE77C89BDB6D184BC4623D3BCC7C2683CD99C93BC5AF6033D7CAC513DEC28E2BC1CB72B3C0FB90D3D96408EBD5F4F06BCD17294BDE44A6CBDFF645EBB0B60F4BC2030ADBD6ED6B3BD9362103D51C8D73CB222A3BD3ED198BB93D343BD4815C2BC06979EBCD15CE9BC5BB948BD6635BBBD59F641BC6686A7BDE7E1153CB6A24E3D9EBEC73D50189D3DFB51FFB935A64ABD88F5BABDE3998DBD11BF57BDA8D7B8BCEEB86CBBB74014BC0C27863DABAD413D7BC6303A6EE0B83D2AEA1A3E0223EC3DAC09643A72E505BDE88B3DBC4EBABBBD034782BA97CCDD3D7E01463E941B8A3D0B9F30BCEC4BDF3BB86E65BC1C5A6C3CB46D2E3E1C64523EB820CD3C3CAB90BDC05064BCF9A3D5BC315E033EE44B8B3E5DD7623EBE880C3E2C5973BC6D7485BDED8517BDE00CDD3BBAD327BDE7FCE83CCAC9893BAFE91BBD5DF32DBDD0EF623C28A44C3D5369D53D8837AC3DBE640F3EF2658A3DE55010BCFAEDB83D982718BDD14134BD7FF899BD2E711FBD46CF9DBDF7C6523D0388CEBD116F69BD69BACCBDCC9C8ABCFEBC653D0F46C73CA977A5BC4589383DA56C7DBDC5DEB1BD938B45BDE2B172BC4FEF9ABDBA2618BD016A66BD5CE126BD4EB9A0BD751F093DEB0B163DFDA5163D3B0285BDD4A41D3C301EB4BD1482D7BDF7BB10BD967F83BD50FB79BCB302C9BDE13B4EBD35AE4DBD856D91BD236870BD3E63933D421387BD40D01EBD7920103C442C333C7DB7C43C2F7CBF3B09782C3C1BF35FBDEAB196BD5F473DBD611FC23CCED9AC3D3071AE3D632BB0BCEAE853BDA7E1C0BDAC5685BDA665CDBD13B265BCF4D543BD82A5E3BAD054403D496136BD09EAB4BD68C8413C0E88643C14D2603DD818E53D7F1A8B3D99A5723D6AE08DBC6A60583D44DF2B3BF9AE10BDED7749BD68D9BB3C65CF70BDD1562EBDBD37BFBDC5760ABD33D96F3D89B4563D8A2BE53D7031BF3D3F857D3DC557593B58E2EBBC97F5AEBB74C65A3D2E65E93BC849BEBCDC86FE3C3A2C6CBD50292EBD03EBB3BCE598B03D4CC4DD3C51B817BDC0F6273D2C637A3DACC2B93C36D433BCA22A2EBD04AD903C30F20E3DAE2298BC8910DBBC6D15A83C778E583D8AF421BCE9541C3C20D22BBDD71BAE3CE2C9C6BC0952943D90644A3DD06024BDBABC1FBD31CF2BBD5E9A54BDE4958B3DD0E72E3C3FCA883DC7CC163DB25ED1BCEB06373DCE6DE33C5A04CB3D64CB433D6604423D33F28F3D1C0C3A3B3EE3413D7C3EBE3A46A79CBDDCEB013DD97637BDC68E4B3CDAE5BB3DBEB3303C2407FBBC3D77C43D99C5273DEA6C773D35D64B3DD42471BD7089253D4D49B5BD5FBF79BD7F9A05BE40B46ABACF64763D5EAD893D2F69083C9EFD0D3D5500063DC75E5ABD72EC2E3BF64E2E3B1B86FBBCF0BB643D8847CABD8836ADBD3322593D4532DC3C07757B3D116A17BD0E8BC0BC868896BC4B0A73BD013F07BED8924ABDDA39763C18BDE7BC818B21BD8C67A7BDB869153E85E3BA3DCD9BDA3C0A09B63DE96265BDCA2E36BD729081BB4DA02C3D05B5B83DDDFB53BAA0C3573D846C6D3DF95F053DF02C633C88D0373D8255D73BBAD7A8BCAD4BAE3D7C97093E0BFB2EBD56F4FBBC7DA6D33DC24F413EC571D63D67CAB2BC66D7283D039D213D1CA9A53CB5911F3D6790253DAB10173D96789C3DCEECED3DD12B3D3D50EDA13B7AE768BB3E1D233B9C0FE23C45BD193D0D92A63DC0B4D23C3243F7BCEE362F3DF8541C3E46AC533E3022B63DE608823DB3A3C0BC9EC4803CE861DFBD90A037BDE5DD32BD50CD8EBB3C821F3D9ABEE2BC659127BEC742E3BC1B518C3D0E1A023E9C43C93D79AF95BC67098D3CA7249FBD446091BCF943333C40F210BC11698C3D111786BC351620BAF87DFBBD2E0EAABD9F2DBABD7205C13BCF6D123D57DEBEBABCC8F2BC6AEB01BD3B43993C1C6239BDC2208BBD52F5793D90949D3C96BE223D6060B0BB336D46BD068FD7BD68140BBDDF01143DD9E57D3D583F41BDDE71433BE46EAEBD7A82D6BCA2D06FBD3874813D1169943D49B9DEBCF8A749BDD75235BC52672CBDC1E64DBD1C8581BD4C0FF6BD5C80DCBC5A3CD23D1EA14CBC0D97853DFCF78EBC51971DBD09DFBEBCE699603D48F775BD1154EB3CE026703C7937933CB93874BDC57C5FBD0BED6DBB75532DBB1421E0BBF9670B3D202D373DFDBE883D57AC4EBDBBB65CBD5A9B523D12D0B2BC301A14BD4A9EB23C395A95BDDC0E5E3C4B6B26BDB50893BC49683FBD30F48FBDC5E7C3BC64B000B971F745BDD2439ABB033B9DBD692984BD5769FC3B2D38D23C944B373DCA72C8BCA85B683D9695A6BD79C3DABCB4AE07BD7A1023BD2A349BBD1E3B9CBD7B31ABBDAD3BE7BC7095933D7044643DF4C1953D46DD17BDF503D03DF8AD073DA908373D4368BABDF730B4BD8A52F33C3C13F73C5EB17ABD48CF8DBDB72FD1BB9E11EA3D8374CC3D837FBC3B6DEA4E3C8CD0DC3C4F0C52BDE33AC43C0986BF3DF633863C0A8BCFBB361E4A3DBEF98A3C03C9ABBD75F9DBBCE32232BD05669CBD18A0113D1BAEE6BCA2E9CC3DBDC18C3D8810783D34BDE13C73B63A3DD482853C35C0EBBC022966BC9A17DABCC1FAAEBD727960BE04DF21BED2E006BEFC4485BE0002A43C8971B43CC82781BDB5BFAEBC54E99CBD255671BD18D4BBBC8B9A57BB92CE79BD4C3574BD110981BE95EB60BE430241BE0A91FBBD6B5B16BDFC6010BDC8E2B7BDC6B0DEBD76061DBE4464263C7EAB6F3D2E9386BCDCE62FBD53369C3B8E6E1EBDB7D8783DA9ABEC3D45FE013E6FE5B43D8E2489BAD6137ABD18859ABCE409CBBDEFF0E83C40F488BCDC28F43C950366BDB2C0D23D6BAFC33D3D4EC23DB87450BA54FAE93D1F07873D8A53843C4D77983D6E585E3C72F9A43DCAB5823DD703D63BF33E383DD6C5873CA92D4E3DD316143EAAAF923D6C6021BDC0CD963D91F2643DB9C69DBA921BC0BC16154ABD59F4E93D52A7EA3DCF408EBDF08CACBD4B72A03D8CA6C43D3E197E3D731A073D23B3633DA9C4C03B5EC6E3BD168551BD1CF7CCBC112C35BD65F0013DDD3D5D3D831DEABC5ACD83BD7CDF43BC05A6CC3C56F6FA3AC3E80B3DEDE39CBDB81999BD5122AEBD3DF53ABD44655A3D6A24893D5D92B73CC384663DC1C9403DE18C91BC31190FBA2A4C5B3D7A328DBDE17C49BDF24E8CBD7718703D4595293D5B19E83B864A51BD7B51BBBD1A6DA3BD5240A0BDD204CEBC70003038C35772BD4860F3BB98475CBB37F986BD800749BC0B7C7ABD2113363DCB53B5BD9A020ABDAA5888BB4BDE46BD87DB183DF0B500BBFA2403BDC275FDBB4C02573D1AB4D9BB148E8BBD9AA47ABD06F57D3D6012393D0D1363BDE7CF4D3D851E1CBD296A35BD450A21BB1EB55A3D90AFE53CCBFA97BDB149D5BC5BD6003DFEE43A3DDA1B1C3D1182B3B9338B88BC0D62FE3CE23585BC0D6D473DB57FAD3C3554033D8EFF293D204AE0BB210D643D5CA66C3D6436C8BCD94E54BD126C6EBC08ED47BC3E9699BDC4D721BD9EB426BDF46E94BD54BA8BBCBF85E03BA379393C8244CEBCF040393C5875C3BCCED08EBD23717CBD6B4693BD5885CCBDC9DE78BDDF2710BD8B97ABBD1CB299BDE774A0BD182F34BDAEA8D43CFCDC5CBD5187D2BC6BF48B3C9DB2213CEA266A3C0919E83CC2FA5ABC49F62A3D138B7D3D059E5B3DF3CD833D3A23A53CBE4F46BCD2F686BC566C3EBDFF1AF63C03D824BD037C163D9AD38BBD2E217D3D9210B83DA3CC043D3F01263D205A5CBC6152993D7F5EAD3DBC25F83C5C83663C4733D93B7E6D523C08FB2C3CA6585E3CC8809BBD6E8DB9BC8C94A3BD808D03BDCBE6ADBD3934CABD3084353CB9FD47BD024C88BDD1A5563DAA8154BDAFCF363D276363BDE442373D7B0B393D9B10B43D2CC6B33D837568BC918208BC47159CBBD7E268BD8F67A1BC343544BC20A6713D960A563D84E946BA610C803C303253BCBFB17E3D2C93F8BCD9B9B33D4A30913DFBFA8E3C80E47D3D2F1B933C365183BD101AEABC9AFC333D45A9F13BEA892FBCA59BC53DB683703D52C4B3BCDDB28BBC758453BC300C933DA0263CBC6138CA3B4B6E683D41077D3DE1339A3DB4398BBD1226783DAFB7E03C8132FC3CA8F8193DF83E9A3DDF58913D768AFCBAF88D96BDAA1DE83C58209CBDFF7C62BCA00D123CDDB7213B97EE6EBC96EC9CBD0B3BBC3CEDF430BC862799BD90EC6BBD6D75A6BD9DAC62BD2EFF633C2E672EBD88E942BD6C70303DB040C13CB8AAA3BBADF069BD2E832DBD5FEBFFBC9C1334BC0EEE76BD126484397ECDA3BB9C9B113DA2FA5DBDFBB482BD5A7586BD478B41BDFBEA86BDF0E89EBB51B782BD8616533D74204A3D826584BC69367F3D4BF16D3DDADB613DCD6831BD6874473D1950203CA125DBBBA96D413C602D5E3CF080E6BA985B653D00E3353D92B1213D8246F9BB94A5D6BBD7F1323D85A889BDECDC3F3957604BBDBC73583D4766EA3BE5351BBD587DCC3C7C4C5A3D282E57BDD64059BD4560AD3C66DD0DBC32C201BDB7C11CBD80E6F2BCFF328BBD9DFB2DBDCF1FAF3B117E29BD189886BC1FD1593DDFC414BDF3BB2CBC2C3059BDD02A79BDB30097BD87176C3DF11AA83D296A8D3DD0AC493D16487C3DDE761FBD1484C9BCD79D9A3D70D2A83D33C5903DC67B8FBCEEF03A3D48DC0E3B987DF4BCCD745E3D572DA5BCF93A28BDAA433ABCD17729BD09F81DBDC2AC1EBDD438B9BCE77A013D58E2EB3C2F9BA3BA7C68043D8BAF48BD7D8A7A3C533B45BD229F6D3C49E2C73DFF60393DB7BEF13B99208BBD532019BD16BF1ABC63E2A5BD734DC6BD67633DBD2AB92CBB1FB64A3C933F9EBDE89CD0BD4BA869BCD96F26BDDD4F5DBDA54F55BD61716FBD7A878B3CC33B25BD12A048BDCFD2CBBCA25198BDF6EFA53CFADD68BD379911BAB93E08BE85AE9BBDEE19ABBDD46007BE6A40B8BDE1AFADBD69D5B3BC9E2A65BD124609BDF186333D5E64723CAFA6693C178EBFBC6130963C3762403DF8C617BD469ECABC2F3D43BDA354D63BE11DAB3D11D786BDA5D0213DD82454BD549AEB3C5FB1683D1789A1BC00FA82BCA9D0023D3A5DA13D6C6A9D3D203C213DE3BE3A3E9D361D3E337AD73DB02E133CC5D7D7BCCBB2393CC4EE803DD653ED3C60B887BC2AC82BBC99538EBC8C27A93D4A44393D71C9E63B87CA003EF34D043EC1C923BDD0079FBCB813503D315EB33DE8F0D43DBA13263CDA0C353DB48C01BDC54D603D5662F9B9B428133DE99F333D6A7850BDAF720EBC78E1223C19D1AE3D6590853D9203A93DB3B38E3D3DC1DD3CF61ED1BCCF3B143D7308CEBC3287A8BC564393BD519C873C37CC05BA65CE8FBD24B3BEBD54DF723C646C4ABCB1E7F2BC59E48FBCDEA7EE3C9C54073D3A2B99BD514C74BD510286BDEAA9DD397992C2BC23D7BBBC7EBBBABC20B2FCBC5230BABDB157C8BBD264F83A9B3E05BCCCCD823C05A8D23BBC8781BD58B86B3DA8B7D03C82AA3C3D71586CBC1915C43CBFD909BD71FE39BC8CC1C73C96CD6EBDAD1A99BDFD6DB13964E0EB3C69978F3DA7E0EABA3EB3B6BC60174CBDB8FE8E3D56D26CBA00BBACBC30751FBDE18C70BC740A7D3DAE303A3D8B3875BD24C4FC3CE1285ABC09F3873D9E51F9BC8B3E40BBBC38193DAC7B393BEE1E84BAF433313DDD74F83D1EEC98BC5E1CC23D9AFCCC3DA3ABC43DB7AFCB3C43BAAABB65A33FBDB7D19B3D462A923CD8E1183DAC9E6A3DC6866B3C3F04143D13EA933DE62EA13D3183753D774C4FBD3857DEBC751F1DBCF795FC3C7E5442BDACC506BC0A1DE9BC340774BDE367C1BC49C8453B1A1EEE3BBC1F1E3D4AC1883CEBC760BD71C3D83C559AF8BC9A27CDBDBD0195BD2ABB1CBDE2403CBD94676D3BDF0F39BD0A1986BDC7E186BD2C932FBD22E1533C92D6813D8C1A9ABC4880DDBD75A918BE00518EBDEA77B2BCE2B9EABC8D914FBC51147B3CC46D7F3DC434DFBB1BCF2CBD73DBB5BD85C22FBD2F06363D3B218D3D7559893D7455B53C6A2A13BD5001703DA1FBAC3C87A51F3D81A98DBB0CE541BA505949BD2388353C1EE9273C96FEE13DE041093E3E0A913D14B7833D6DFFBA3DFA590E3DDA89F5BBB22F723C57E6C83CCA72433DA71CF7BC28DFCABC442BCA3D70DC613E18B3073ED13D893DE0B5983A9A4BB2BD013D90BDD8AEA33B02FDEEBC46ED07BD19138FBCFACE3F3C6C559CBC7A19233EA5414D3EE10F353E19B2E03D1A209B3D9085B2BD548639BD55C5E0BAFC824F3D835B733DF7CD553D614486BD1D138EBDE9A32DBCA874C13D2976213EC4C8AF3C6604843B57A3883D8781703D7836FF3CD6F2D63CB4859C3D0EA8993D40F8D83C20FD59BD83BDBBBC43CD6FBD71848FBD43009E3C7E5C6C3C09D8923C70BFC33D253D133D937C7BBC9E8CF2BA08ECCABCE57BE4BC7C30D5BC7E5004BDB4C946BC49D54D3DCDE021BD792B253D6BB9C43C54748BBCF25B8CBC0E6D56BBDE474E3CEFF6913D90FFBD3C6B0C7ABD0615B63C193FED3CE50877BD2B6FA4BDB2B10ABCDB0DA6BD7CDADCBD2B8228BD84C4A6BC1C0FB83C0102603D9300403D7A0B20BB4162B13CDB81753DC2CC923D0590CCBC66B3A7BCA195443DAE80643D4490233B469BC33AD2385B3DB7F3CCBC34EB9D3CF5ACA43C778F97BBD2D5D1BC4C8298BB90F37CBDB1C856BDAEF626BDD7179FBC4D1541BD73B16B3CD68C90BD5E9602BC13C164BD873A713CA58C7EBC6854083C41717FBC4BB774BD3A644E3DA89339BDE21DA83C9D8F553DD1FE063D4BF4843DA0983ABD04846E3D8945FDBBC8A531BD20BD6ABDFC2F8D3DC1E7E53CC9F28D3C2A1C943D85BF33BBB85183BBB91C2DBC536C3CBD6252073924DC09BD75047FBD59D48FBCB9DFE1BD7A015EBC860019BD100F6A3D21A913BD3858843DD5AA023DE845B13D3371A83D80BB713D7FD4D43DADEB813D1B4A173D9229183DB6570FBDBFC6F33B781A18BD81571C3DB8418FBDF7318E3D1C239F3C1E78A2BCBDFFA43C2CA8D83C7531E1BCAED5C53D4DEFF43D472F4C3D7A23AC3AAC5017BDB20BF23C61E1CD3C585B603B48F6A0BBC44EBC3DD007173D4B56BCBD6F08C5BDDA6F80BDC25DAA3DDD62C63DC887973D22340A3BC3EC85BD961A77BCF44C80BD978AAEBCC31B813CE75A303D11AA29BDD131713D7037033E70610F3D878F873D26211F3E0314933DA3BD13BDF6F378BCEE3CB9BD481A69BD42340E3D1F60483DB264C73C4137A83D8F2302BD12268A3D4621F1BB5A1F9C3D234A033E7742083E82BD74BCE220EDBA45AA85BDE02ABABBCC78853D1445023DB95DA6BCEF9E48BCD447B5BDD8989EBD62D168BD4D1A73BC32F3973CE69FF13D7D34F23C86CB263D3A9DA3BD9254173DBC37073DA2BEE33DA6DBA73DF3158BBDBAD1F0BDD8CD05BE00CAE9BD83A19EBD564E6E3DD6AFAD3DBDE0813DF4C3DD3A7565ED3C2629813DD0619CBC737A393D9A80EF3CD70D2B3D91B2E93BB8CFDFBD718CC9BD34CDF9BC78D02FBCA3E5F9BCE1782FBC91F5A9BDC7750CBD7E7026BDF927263D178221BCCF1BEF3C94A404BD82615CBD643498BC6676F53CFE5BF73BB9EA01BB52FA2B3DAFA5133DDF617B3C0080BD3CC227283D1B4F81BC2848043D85C969BCCE38473D151F3E3C8CE14B3D530701BC2611513DDD95F7BB006E613C7BBA913D0566AA3C4EDF7BBCBB89FBBCCD7618BD05B833BC42FD85BDC6E93CBD9C42A63DFDC0CE3C4D5F003D7C262BBD6605913D8CD845BC995BC13CE005E6BB422706BA0C6F01BAADDEC8BCA33CB2BCD7F4193D97BD97BD18F1A5BDA84E2CBBC9FD4BBBB18AD2BBE7EFF5BB85DE64BC993178BDF9C49CBD414B4B3C9B66EC3C040A3ABDF30951BD3E85323D213A4B3CFF5383BD100603BC26B3D9BD7D4DF2BB15A86FBC5AD38CBAF9BC713C2B82593D5D08493D06C839BDF4A2433DB7CE0DBDF4641F3DFF0FF9BB655BACBCFB00053D7A040BBDACADA8BD5DFACEBD932BE4BD3A3304BC447884BD43434F3DFED8CCBCD9E5193DE27B97BCC25902BD81F24EBC5B6E13BDA631E1BC3942F2BC1EF5D83D7894563DA865BD3BB0A053BD0A5627BD2BEC2EBCF7EB69BDED1382BD33A084BD5E857B3C9E9769BDDB30D63CA1FDCF3D0413B03D3401E4BC3C20503D98868F3D82C551BD1F9091BDBA9713BDBCC6FA3CA78596BDFCB8C4BB38DCFE3C5CC828BC7602DF3D8293123EDF17913D9F80C2BD67D2163E16E9CB3D237EDE3D69E438BDD02EC0BD6185AABD8C7A2ABC0046593DE0FD30BDDF94023E29F9B63D436C9DBCF6046ABD3C6EBDBD78271E3E93B8243E01AAAE3CAA7180BD6363EABD05FE7EBD2BCA823C7341813D8CA70B3CFEC1273EF2FBA03D54081F3D7A14D2BD2BEA0A3C12CC243E912C6D3E3167DB3C995156BCEB5BDC3956A6133B3C227CBD5194193C069F1A3B084D703D57CEB23D72B50CBD6BA8B7BB02BE783DC36EFC3D9102843DD2BA31BDFBD6D9BD3B9EAFBD463795BDC7ABF43CB1127ABDCC7D6EBD4809C8BA78B34FBCE8D3093CF77BA0BBFA61FB3D73AC46BDE67EC3BD94EE0DBCE8F49ABD778B5E3DBE85E7BBF0ECCCBC3FE496BD5754EDBDABDA81BD2ADF3ABE19579ABDE00A41BD5D5A1DBD27B578BD8E00DFBD21D833BD36A41D3D33CF62BC48AB80BD5AB51FBD4ED205BC53E1A0BD193FB3BDE6AEE3BDED1B64BD1AF5F6BDB2D1D6BD04AB0ABE239EF0BD9CAD783D658E923D12A48ABD45CB21BC043C193DAE895F3906ABE4BCD92C82BC2909A83D9CE29EBBC00331BD37D194BC55545D3DD9A0B63DD6913E3D2B24923C9B69713D142A90BDAE8F6D3D6B9505BD97F6F73C491A5FBC08CEA13C25C4DFBC6F81193D273312BC132ED3B9217700BD7402143DEC56793D76814DBD7281173D49F9043BDB2D2A3DCED055BD10F426BD8BB8643C936893BDAEA777BD878B943BEE7353BDF4054AB95E103F3A1A04BBBD5F232DBDB6F03CBCD57158BD6176B6BD32BA5ABDF9A8683D0F2BF6BC648F503DA68372BBA2630E3C0FE3953D04470CBDB45132BC1C8F94BDEF0660BD9CC1B33C261FA5BD3523843C4BFC19BD247C06BC2DB5063D2AE2F53B5304083D9C7FCCBD132122BDF3739B3C2F2AB53BB5D0033D3A0679BD7C4E7EBD0FC52BBD9D31343D1009A5BD831D2D3CCBFC453D2FFB613C2F134ABC9662B83DD8F388BC6DD01CBD6526023BCB2454BD155BE0BAABF801BD2E4028BCC5E74BBD57D4B8BD94D7873DF4DB883DB8AADB3DB09DB13CE3B7323D90F16C3D76B372BC7EB4B5BCB735243C98E7783DECD431BC741FA8BC34D571BD7CBCC8BD457643BDD28634BD6236053BF3279EBD8FD32BBD9FB68CBB8CA604BE6FC59FBDAD1A1ABEEDC73EBC871D533C5CBD07BC88B3ABBDF1AEF3BC02C31EBD7D62A0BDCD85BDBD3B406ABE171720BE4AA4D3BD3F06ECBBD54FC0BD682662BD5C7694BD5AB2B0BCC2D5383D695781BD62FA19BD3896F53BAA4F343D0A86C93C7E2346BD94B7F13CF9EFC43B119E4F3CE95FB7BD49C637BD531C723CC8BA21BDEFB3FFBCB6240ABDFB0B4FBCBF6C9CBC5A14853D67AA2EBD50C638BCF370043D93F08A3DB30712BDB1FA33BDEA83413D2F414F3DBADE0ABC9467213B3C4E92BD7C0C36BD199D793D461A453D9095ACBCE2EA0D3E52FCC93D04A0C03D4CDA66BC8A9CFA3A84B6573D0A09BB3D76B905BD0C90213D61E9E7BD6821E5BD34D31639E0B9EB3D868EBF3DE6B1203E121B873D6073613C27F28FBD50C47B3DA00C10BBB282993DAF5562BDCFC8F5BC35E29ABDE904753B45E21CBD6F8684BD02AC87BD96A7E5BDE1A305BED32B02BE4C14D3BD2ED4963D0552A2BB5BFD373DF66DA1BC6DB6343D31762ABD4B58AEBDD4ACADBC9543D6BC5018BDBCA1032FBD4222383D9100A0BDE2952EBD0AD42E3DB341363D9F650FBD0269B5BA66EFA63CDD1A4F3D627E67BC643B043DFA4758BD059EEEBC0EED303C29B592BBEDD5063D552E89BC3753363CB0DBF6BCFB3D1D3D4125063D292C0CBD39FE813D6B180E3C6D19F13C4769263D537B7ABD645B463D218A57BD6B9C9B3C94CC033C88C2B23A8BCB7B3DC10C313D9B9871BD15D1473DED2FB83C5736D2BB19BB2EBCE8B02ABDD65826BDA1FC213DB2F7163D113B003DB4A6B93AB9F499BB5ECFEC3C2EC5353D5F9102BD81996CBD0C17793DF80E78BDA55479BD766903BD96970E3D59D98D3D918013BD3965AB3C41176EBDFDBF693C68B32ABCA63221BDAB5A7F3D05F61B3DF316FABC24106CBD329CC9BCF8EB1FBDD447A4BD2E2B06BC3655D33B03970A3EB23B9B3D93B0973C6E1B0ABD3172BA3BB4CD34BDDD9D06BDEA5F5C3DA1F807BDE42D94BD77FFCABD486204BE6846EBBC4CCDC83D400E11BCD07AAD3CA89F3C3DBA4C3CBDA346753D6DB78A3D678A363DC441343D85A3E93CE9579FBD3622763CB56CAFBD9A304BBD8ACBFA3C70178C3D7D6FF53DEEDF9C3DEB9ECABC2EEEFEBC18D2BBBC1CA4703D3464523D20D8293CC6533DBDA9A92BBDC7B1323D91CF043EB5CE343E35354C3D9CDA713D3A35C73CA66F87BDAE5F1B3CBA8901BD0C8C923D1AF35EBC9E130EBCFCB2ECBDDA4A02BE00211FBD4721EA3D29365A3D90052E3C358CC2BDE372A3BCAE1883BCF9F09FBD4261813D6505503D07887F3D1562D03BEB735DBDD8EED8BD5EA9D2BD0BCFDCBDECA692BDD391E33C12ADF8BC059B9ABD8D731D3DEF1B1C3D319B9EBC4DCB673DBBB7E13D2F6C0B3E611A8C3C90ACCDBD7C95E9BDD26AD8BDEF37353DCD09683CBB9C05BDC9208EBC2221AFBD33B14A3D91987ABDB41C8A3D58A36CBA1FF3473DA5BCD63D31DE3F3DB8BE6DBD4817793DE2E5B23DB29A0C3DFFFCA1BDC425FFBD54AF31BDC399FABCFBBA623C7BB09CBC5160953C2178B13D5951593DC0BC7E3DD3F2353D9ED473BC408483BDB389C4BCC04D10BE9273893B6D32373DA6B5A63C344AA83C53D50ABD88192DBD9A8D033D1DE3383DD374CA3D984D71396F571E3C9821B4BCDF1DD6BCF9761FBD227D1EBD2E75C3BCA93BECBB5C6B2EBD40C5883DB6C0833D3896C83B5167903C9ADA1F3BD4F156BC5E0E8B3DDCF17B3D7E97933DB9EB88BC678F153D7D21F23C3DD9C6BC8BBDE1BC30B0E43C332F2FBB05CD80BD224C84BDDC801F3DD7A745BDF11F413D54B2D03B4C6C043D769D0BBD2D3597BD90D89BBDAF079BBD3A9ADB3C857F0D3CFE78D5BCDA464D3D5566A2BD8A02C1BDB239F8BD9C5C78BD2FC770BD65C506BC652BE0BC322391BD043C1ABD173378BDE7A88DBD77A32B3DE09F76BCE6578EBD60C1293DA9467B3C6F5A073C5342EFBC3D86943C20C2703D8964C8BC26903A3DB4CF1BBD3ACD02BC18F7A93C260F493D747E49BDC444C93C48760B3C467265BB610906BD27A5F7BD8F7428BEB37E32BDADFDAE3D473BF5BCAF503DBC16660D3DCFE191BD25D640BD81FF883CCBB0953D98B24FBB3E510EBD16EA19BD0B768CBDBA24F83C461DAB3DE0D50B3E690159BD70318DBDC7932DBC6BEAB6BD6B0B393D17C4EC3BFDE1EF3CB137003D3446243CE4DD083B8E69863C48F4523D6CD3983DC6E4813DC5B0EBBC980532BDAD7BC3BDE357F5BB1A468CBDC5ED2FBDC53EE23C589F73B96C20973CD2E4953D49FF0BBE179297BD8E91B03D5AE3A1BCB7ADA63CE9E3EEBC1D348C3B035062BD8C2A98BDA6FB113D5F6E0E3BFDF9043DAAA0EA3CC028383C97AC54BE170993BD9E450D3C9F848A3D34A9093ED4AC8A3CEA6180BC0079903C4A208ABC117C40BD5F88BF3BDF2C893D4ECA563D98E4B63C207287BCAA817DBC6218FC3C849EAF3D164FCE3CE4474FBA52AF57BD1D336BBDA36D86BDFA9D92BD275925BDA0A6CFBDF597563C8A2861BDC84016BCAF75A03D587DB6B944BED2BDCDA6D5BD4CBC3FBDC7B417BD303BAB3A17A6CBBCA5A944BDA5D7EC3C1AFBE6BDE48C86BD97A8E2BDE5959ABDBEA55EBD41DB26BDB8D72BBD6BB48F3AB196F8BD96C6683C753AF4BAE4C4FA3BF705F83B040E8ABCFD02F83BAE59BCBC8A890BBDDB735EBB6A5F553D17BA07BC3F13C03BF8FC3EBC01B829BD784E733D2659E5BCA617C33C4189893C589EB138448A81BC8BEDA1BDD7C12F3DEB97AD3C1D1B6BBC6BBE1BBD7C5B7DBD2C62BDBD1E383F3BB7F705BC0F4F83BD875B81BD7F1098BD2E3508BD2EAF11BD0AA5363DF66CEDBC7A73463B7414EF3B13D07A3D6BD387BD8CB38EBD1FEA3C3D1A7C423B473583BDDAA978BD1B8BE4BC25EDEEBC3AC9333D865FCD3CBF9313BD48D2EFBCBC065CBCFF85F13C7C3A65BDA8DE8B3DB11714BD174FE6BC56B277BD2ACD0ABDE4BB5F3D30988EBDDD07B53C69F038BD0E3621BC859196BD2FF5213DCF09C7BB46BF23BDE4703BBD88A982BD530F70BBF1716B3DBD568BBD50959FBC7E38113DCF6474BC66BC263D629D51BB2B72C2BD984975BD86CE713D77B69F3D5481C73DCE90153D28D0EA3CA915FCBB0D5B903DA7F8603AED572CBD2FE33D3DBE6C29BD49CFBFBC0EC500BEDA841ABDB2A3CC3C45CD383D541AE13A640AA3BC8727253D8DB979BD467E88BCD37D653D6924823C72301BBD27732DBDB7380ABED7C820BEB8F1D4BB1DD8023E5953E23D1BBA04BD99A436BDBE19EBBC7DC828BCF34AA0BB787A63BDDA8F3FBDE022263C17063B3CDCF9C9BC2B8ED1BD874DC53DFAF3FC3DAB00C53CAAAB553CD35106BD6F2D8D3B34EF3F3D0F904CBD9CA5373D284B163DF89193BCC433BDBDD8C612BDECF704BA80B0D93775D4C73D6A891DBD80F46CBDB3F246BDA90387BDDD61FBBB322239BDCA0186BDA1F6633C2C003CBD1F04F6BC7F5E64BCA7E540BC958E963D80B6BF3DB460413DFF6D95BD332D56BDE18BCE3C05EE8DBD4B460E3D787B84BD7B0F26BD75DAE1BC8BFE76BDD977863DA5B437BD02A84FBDF19081BCFC09413CD4D297BD70F7ADBDFA2DE23C54330FBDD09E7D3A4CF51C3CCA8FAEBC85C802BD82B8FD3BD956603DA916BB3DBEB1C2BD2920A2BD594BA1BD32F769BD4D87ADBDDDE75C3DE957013D1BAC553BCE87D73AAB0F223D411609BCF2DF963D3F41B93D6A98453C4BDE0FBE998CD9BD9843CDBD31E7A0BC19A90B3D36B3A13CC7DC69BD8E42A8399C912CBD013BD03D388EC23D27ABF6BB20CC05BD1F9E1BBDAE6365BD250CF5BD8E2CA9BD84121DBD41BC03BC3512393D875A50BCEE940A3C0424793DF1138B3C962456BCEDABB8BCB512E9BCCEE1003DD52B7CBDD585FD3C4BDB81BDDD6B113C40845DBD1F5D90BDE5F3C7BC13919E3CE4D5223D60CE07BD8C7107BA1CCE62BD7618943B8699C4BC4F32B03C314F47BD98FFD53C03C8AEBC895776BDCEEA1F3D3633693CD2BEC0BA311F98BDFAFD023DBF9A85BD8BB341BDBF53FF3A9234293D5C239BBD3DEB5EBD1124D93C021885BD230983BD67F693BC56BB1C3C8A5430BD2EB95C3BE8F3663DA8525FBDF6EAB43AEC1B59BD0AEFA13D94D2E7BB785DBF3C8B7F853D558FB8BC69EFDCBCCA8A86BCFC3E933B8E36393D1B3E93BD098A1D3DC010693D2AEA623DCCCDFCBCFAB5C43CD30D49BD18C0C2BCF6E5CF3C51E3BBBD8D8CE0BDA7F0423D0791FCBCE2148DBCE42D5A3DAE67D03DB2D7233E31CCD93D5735223CCCB415BDC2E381BC0D29D43B03D3EB3C11B71E3DCDA2DFBDA819CEBD05EFD53C8C820E3D87C77C3DACDD433D91F4B53D23783D3D7BFFCBBDC69FCABC00030E3E1EE3503E443F243D08C0B0BAA48DA0BCE2F6FBBD8F95313DC0E2DD3C248D913DE056163A51118D3A75470EBE2385BDBDF057C9BD0EDC053E83028D3D0C0DBE3CDD884B3D9A1DD9BD1B8A6CBC0F941C3B503F73BD2C2E5DBB91A8DE3AE9C0DEBDED9490BC2D52E8BDBBC827BDA862B9BC98B028B9E1C1D83C756382BD728DA4BDEEECA4BD7D2717BD0CC868BDF3BFC83CFE9AA2BDBC5371BC49FA41BC2D501C3B808606BE86C8913B79F6AF3DBD1FBCBCE7F1B43B4AF306BDAABD8C3CB607463D8D2D553D99331D3D645D843D03E72CBDB73970BCFE7BB4BDC25620BDB6FEBA3BAF6E1A3D84E3A33DF5BDEF3D5C97CD3C75D387BDD5692E3D7D9144BD5FA3B73D807FDDBCA4B7C2BB23895DBD0D09C1BD6229703BC98A46BD7E7B673D206E593D1307C2BC801A32BDEFE73DBDBB42E6BBE7574BBD8A8A6DBCE4D5A93D68EB013C773F303DDE78623DD0A9B13C26CCBF3B36DB06BD524FFA3CA03A6BBD6AFD83BDBAC9E03CE96E76BDF0FE8DBDAC97B23B413DB93D60513B3BB7A4CD3D8CA1B43A5392F63B1CBAAE3DD264933DBF863EBD3B7491BD2087B9BD76E56F3C7530B93C9E4B593C7E871A3D594EB13D3274823D3BA0993D0CED213D5964483DF4F49B3DF8128EBCBE9759BD535746BCD19429BC23FAA73B88BBA1391A5F543D0100CEBCAF688C3CBC8C05BDBF132BBD2EB20A3CB0C60ABDB5BE8D3CD4DC6EBDD3CCA4BD5B7FAABCAB95BC3C29E4E83B6A234CBD7C86A93BA4C4A2BB9DBC8C3DB3B86F3CCD08853DB0E80CBD731C2C3CCED2883DA4541C3DE69D65BD6CDC933D7C388C3C590D5D3DEA10AA3BA5939E3D3B14723D71C88DBCD4091D3DE63AACBC7E0E433D58D7E13C786ED53CEDA674BC3109A0BCA8E0B8BCDF7D71BC49C7563DE84E063D8D209A3D638127BDE5BB293C97E7DB3CACE1093DA8852ABC837A52BDBC4F4CBC8F31A7BDC07C863D333B49BD1F2F64BC992B523DCC64893DB14B22BC2ACA4B3CC67A563D799FD4BCD5872CBE0F1237BE40C317BD61B7DD3DEB06483E8EA62D3ED3B036BCCF9272BD728192BDDECB18BD0B0B5F3B12D84BBDF471283DC6AC5ABDAC9409BED5CB91BDB364C23DE4673D3C142ADA3C7E94753C7EB2AB3D6F250F3B6F069ABDC13C65BCF4B7843CFBF292BB2E85A13CE0C185BD04A5843CEE54A13B52369A3D46F9223DC4AAE7BD0A138EBA2C22293D2EFA823C18ABD23B745AA73A320B803C26F9F83C008D303DE68FFB3C15C1943DF8AFE8BDFB472A3D2FF81A3E9604363CB149B63D02C49F3D1A47143D21C914BD0F5D513CC5DFD5BC8BCD80BDB1F043BD38BBE2BC6A8DE4BC9B8FB0BD6DA5283C1F54F63A4C4D22BBF0C4D3BD22251DBD78B192BD972A083CD79063BDFCF265BD3BCCC33C770E67BD161A86BD9E8675BDBC86293D60893DB9D738253C2918B2BC46340FBE78A803BE5F913DBD9E67E73C1D8E413D185FA13BF2862BBD95C885BD44B8983D7A47383D4CB7B1BDB0E305BDF237393C298EA43D8A3DBCBCC71387BD4934A6BCF7E53BBC79B1A83CD4A0CEBC1BDD7A3D67DCD9BCE6EE5C3D31A4313DFFC206BD4A013FBD22A4183D7A0FE0BC9DB30DBE81C0BFBDE0DD68BDE708E5BB323313BA655115BD4F9171BD1464C53CE32709BCC34D06BCD4EEC93C0D32B03D00FED83BAC95A9BCABA2DABDD53E82BDF23F443C335D9D3DC8DBE1BCA7D522BD73FC20BDD0B645BDE79FCD3C4AA6473CBAA64F3D1426B13DFC791E3D26BD2ABD34FD7DBD2D14D53C4B271ABCB282943DFA7953BD411D13BD6A1F413D061D61BD2A5622BD98F99F3D05A9793D0C3BEA3D7E9EF13D02FBA63D87ED8E3D2859CABC7273613B27C7223D39A37A3CEFFE7D3D93D1D93C6ECE063DEFB7443D2BE683BCD7187F3D3C54813C721A9A3CC88722BC0F3099BD50C738BDA7DDAC3C8952E0BC670C2BBB555B1ABC3E2C88BDE6422FBDBF16013DF7B800BD7542E2BD312D3BBD15BBB7BDCE7722BD82FD39BC7E6ACABD58F2503D35B405BD6095F2B7308AC2BB43E5D23C8AD7A63C8486303DE806CEBDB14C9CBC1FBC503DFF72BA3DF16483BC92039C3C16AED33D0273E23D6DACA83A6A600DBD466E4A3DABB421BDC51727BD3510D9BD119ADABD998116BDE470913DD8EDA0BD3326533D9CA4BC3D70134F3DFD5E3B3DE8160D3D46CEF73C1E69363D53EF89BD1EC2B03B80B1BFBD040C193DD61710BD8DD0C63C8902FFBD08F1C83B980BE43B49F1CABA20F8133D87E0AB3D9E8CE2BCBDED2ABD85627DBCB90421BCD833363CC0C61D3EE68DDF3D10740A3ED92E2E3D78A1A5BDECD3A1BC2DB689BDC3AE2E3D5A3D803D63581D3DD18B60BDBB2EC43CEC2F543DFBA9E93D4FCE103EE00ADE3DA3390B3EF384703D13F58ABA124DE0BB552EAABD94499F3D0D2113BC668DF2BC80434CBD5AE43FBD0FC7DE3CE4C3CE3DEE39D7BB7795EC3DFCCABF3D236A333DCA129EBCD6995BBCB2C5873D60F616BCD503123DFBB1123CEC0281BD6CCB6CBD0A382C3C9E1D843D730BAF3D688DCE3CB0CE8CBCE8E82ABA9928BE3ADD9A10BD53353ABD73CB41BDE85DA7BD124895BD89C05DBD12AD85BDC28C96BD7D818ABD983558BD4A510EBD513094BDCC6A9BBC48F1023DAC38E5BC49A99ABD38E831BB013596BDBEC6043A682368BDAEAFB6BC6DCA883B0F8B6EBD7AB3FF3C0754CFBBF38F7EBDAF77E53CFC15363BBC1D81BDFB1EA2BD8ED004BB55559ABDDA3B77BDC6D043BD2FEDBC3C72D94ABC51708C3BF76553BD92F0F13C16F3083E397FBE3DCE460ABC4E6EDF3DDF0B333D580F45BD22656CBD2CD7843C29CD333B5411B1BC9C06003B766BE6BD9D39113C321460BB98A236BB722367BDEF9E553DE10D093D415F7ABCF49A153D1576313D7E4DB1BCF5DF9DBC2980793B6E7182BC7BB346BD18138ABBAA45A7BDE75ED6BDD796F5BDE36AD2BC340988BD7AEF87BD2BC20E3D8CE4713D2233BDBA8B0C90BD25F4B8BC6F17043CFB3B413DDBC6323D1D0431BD13E04A3D6F993DBD5FB190BDD3A495BD5D73A7BC1549D0BB5CB583BC157E8DBD22188E3B13F3243DB3861D3D03FCB53CC6B7293CA98CCF3C165C5D3D8C1849BD7B47B2BC00265BBA0AB706BEF1A21ABD6A5F07BC3597A5BCFFD8A3BABEA5083D547681BD0FCE483D1168B23C5DC4D53D319EF03D846F073D970DA53B96B952BDAA4C6BBDDD5BC9BD30E4B3BB5111293D8EA380BC398C5BBD93917DBD783D1D3DDE134B3D7253363D40F7253D0CEFA43DE498143EE28EEA3CAE43853BA6F9613C5294133C0BF3503DAF5B4FBD6D20A8BD8D1D633D6E3D7DBD856E843C1C3F783D4A84093D1DA9D53D5D46283E2B44153E34A5C93DB552FE3C1C4D213D9A7564BCD1AC29BDFA9692BD325DC13B6F4522BDC66A6CBD94D8083CA8271ABC7D91C3BD6FE62EBD5B39673CE74BB33C4993F3BDE369A2BDFDB1133D3930E7BC92B7223D96A4103D39F06DBD0A77B23BF1CC16BDDFECF3BD41A8CDBDBD74CCBDEF1B43BDD9D3C6BD9CF163BD3DD620BCC4F52ABC62CA26BDF4B3C03B14BA5A3D4BD89BBDB012523CC0A5C8BDF2AB1BBE393F2ABEE55A23BD36EC133D46C4973C645FB9BC25A285BD1A7536BCD97A1CBD9E50AE3B639273BC703CFABC20D829BEC2612ABE8D54D3BD18741FBE66046DBDEB95F83C389C6CBCD4D715BD7AC682BD868C5C3DABB2ACBD38248BBD0A82C83DED9885BD62D4C7BD8595FABD75620BBE4D1A9BBC3F9EDB3D9D1A7DBCD9EA5B3DF1FFFFBA263D37B949E38A3C2915E63C9D61173D7B88553DDC17F43CF828F63D5364B13DF480763D08FF443C29116F3D110B603D5A66B83DB06D023EA31ECA3CF60E86BD177C04BDCB8EEFBB268E0ABD297D0A3E5E9F223E04CB143E2634D23C419F973DDBC78BBDC6C2A53CDE44933C16C797BC7FF532BDEFD17DBB654F243D9363013C64B488BD71C6313D105A273D0883123DCD83B53C4209073D65FD293D42ACD7BCD11AACBD69D19CBDE13A8ABDAB5E98BD47664C3CDF223A3D5D2684BD23B57DBD4CE41A3A52F8D83CD6045ABD395E1EBD852EDF3A38C49FBBDF63073D1650A5BDD388E83C0BF397BD1BE11E3D91A8243D2F073DBDB73E9CBDA8176B3C74532BBCF42C1EBDA035B439F6AE6B3D6FB542BD418B443DC35478BDE79933BD07A26F3DC322523DFCA6E0BC9BD87E3B93CE40BDB9F187BD89AC823C7FB88ABD1C3989BC8BB360BBDDD2273CFE7BAEBDE08AA1BB6EEEACBD97E686BD8FCB6D3DDAFDAABC92E399BD85B567BDE721F0BDEA009CBD6E9E36BD71ADB2BBF3CBFDBC708A323D99AADC3C33A70BBD54E586BD08B5F73C7DB9863C3FD982BDA20DFCBDCE50E6BDD7BB57BD7955B63B2247B33D9E9AC93D4632053E04DCAF3D953E223D1E2A48BC7B223C3D6EA95EBD1B31233D79BBBDBD3DB7A3BDA3691ABDB202B63D652B7B3D78601BBA6D5048BD732F6BBDB2C32D3CDFDE663C65714C3DA5B81C3E5967193D3D60D6BCE4382B3DC2AE8DBD9A46C23DBD2DC43D41941A3E91AC8E3C14EBCDBD31B925BE4B9B10BE109DA0BD48F3EB3C97547A3D075378BCB41219BD02B908BD3EA6E53BE4298B3DEDDFA33DB4F8063EE4F0133D7065D8BCBE31E1BDFAF8B6BD88EDA5BD1A2C9A3B7E2953BD146211BD9668DB3A546CD1BC3AE9173C2AF0723DE396043D574F98BA32D9833B63B025BED64005BE6EBCA9BBB209A43D01CCE2BCB9419D3D088A5ABDEA679A3C7C40243C8B1D243DB81784BD04088ABC55D757BDC3C9A5BDF65E41BEF5A7EBBDA1EB2D3D44642D3DE6E2D53CAE1678BDF7FFE33C1F655DBD2224C1BD97FC0ABDB0893F3D6FBDF53C248887BD5A7A92BD5E6B8D3C9D390A3D30EF9F3DE37CF93CF6AEEA3C0A42943B0CEA96BCA4F611BD2C4726BCC80A7EBDF5970B3C8C5A8A3D4D998C3D58850B3E5C43533DC74FFC3C2B94763DB91E783DAA6672BBFE3DD03CFB4816BD68CD763D2474B8BDCD9FA6BDFEC2E6BCAE11BD3C0EFDA53DB7D09A3D94BBAEBC4C2E39BB2F09123D9247453D847FFEBCE5C8053DCFAAA1BD3A997CBD6DFCD0BCEB6182BC4BF396BCECFCF1BB5248063DDDEB7EBCDB2D163B281113BD89B89FBDD534F13C5BB5F53B1AF07F3D26353E3DF2204E3CBBB005BC2926243D334CD53C0B785F3C00DA1A3DDAE267BDC04D3BBD864583BD820042BC41DB7DBD9CB8673C63C382BDA10696BD46A7873D87E0B4BC6B0027BD80F7513D55DE283DC51D85BDA22D09BD17FF023D655A1CBCE5AA673DC7552BBDD841733D5D1415BD7F62EFBC43A8F33C45BD38BBEECA84BD39664D3C1FAC0B3D62329E3B33F7303DAA11873DA5C38EBC38F308BDC59C68BD9BE9873D3DD61EBB4053853DE3BE5DBCB4EB9139BD7DE03BEEA648BD041E50BD7C19F23C7B7F24BD06F044BDAE1C51BC4C4C493D443D6E3D6BAB533D75157C3C743AAF3C09579EBC4F776BBDEA9782BDDA86703D3C2384BD21679ABD184D733D37E96D3DDDDC2CBC6ECA9EBD838327BD000D123DBA278D3DCCB37C3D676A3FBD662A5EBD673A363D68035ABD84D5983C67C55EBC2F7DA63C64F37C3CE041E8BD33F8D4BB8B9C853DE873AB3D0F7D573BB89B7DBD4A8110BD46CA633D71C635BB537C4D3D20418EBD20865FBD19161B3D92F776BD1F6588BD8DBBA03C4B29C13C107C8C3BA059913CD3C7B83B2986753D2B96833D20B40EBD737D693CE3D394BC3A95D43B2AF994BC1A8648BD74D031BC68D19F3D3B0E573D302D3EBCFA31603D27FB9CBC552BBC3CC481D8BB85B780BA05B0963B131FE73C156966BDB8A8063D9C3448BDE47A22BDA47C5BBD3CD708BC00CE473DE5EE673DF67155BDFC2E923D412465BC838B1E3DA9F66DBD5920973B9E1C6C3D13C0473DC3C8843D2BB92C3C10BD09BD9E0E51BDA62B19BC79BE013D33BF48BDCAF469BB3A8E1D3D44E8F0BC936329BDBFAF023D7A257D3D8F95C83B0053F93C4941CC3C7A9D60BDCFE3373D87DE83BD130C81BD6B09ECBB6491F9BCE774823D6BB3813C4989C73DE1E9C63D6BF4ECBC386B793D9053953D474CAEBD2426F2BB248A24BCE3CE67BD0DAD9F3C2AB6953D9A305D3B8719873D76241F3DDD12E43CE0A21EBC92D312BC974C963D6FD00F3CD5A363BD00513FBDC2288D3D708111BCF93E80BC948FC93CBF93ECBB2EEC803D66D9493C2A9B383DFC87A83DA852F23C24FB89BDB4333E3D21CFEDBC29831CBDC65D843D1983E23C3EAAF8BB7EBC323DE56E063D72D245BDB6916D3D82AA70BD401D36BDD55C7ABAF49A75BD5F327FBC61ED2E3D2B2A5D3D3B0264BD14E33E3D3859453D073DE3BCFC73653D8FBCE7BC8D997E3C492FCFBB98CD603C27E6413C749990BD7EB79BBB54FEAFBD01655ABD892E5EBD82413F3D7F778CBD8D8B89BD68E9E93B33D265BD2DB0A9BD4F8A55BDFD5EF93CEC03F6BD2C8E34BD72C2B7BCA2A3C8BC0EDB3EBC5051643A657C843C7CE3A2BCC7D817BC4D6A903CD1A8423C046CD23C2F05DA3BF1C9ADBD5FBB32BE9873A4BD019935BD482980BDCC9601BD3D40223C43824A3D647930BD7CA9023D34FC98BD97B403BBDFABEB3C0E3D61BD4C8233BE504146BEFCF4DA3B4AB0D2BDC94A06BEC00AE838F38B953D570F003E466B553CD5137F3C994F9ABDC5405FBB41358EBD50FD20BECE1E46BEF3841DB96F94DE3D388C353D793CB63BE1F19FBB4A470A3E0D400B3EE2C50D3EAEB772BD4797AABD8E5151BD4767E63C7476DCBDD9D7A7BD20000F3D77066A3EEB13E43DB5CD94BDBF3B00BEBEAF7FBD0CB982BD83B9EF3C1CE937BDFB306DBB1BE197BDEA1B343D44CCA7BC932145BAB437E7BC2D903B3E8908703D81DEA9BDB4BC30BEB68019BE8E1DCABDE505BBBD1D8E8DBD8BA94BBC39EDA5BBE7105ABD81CCB7BD468C09BEEA9500BCC902063EBB9B2C3E6C72AA3B97358EBD7BB116BE96BD97BB21D600BDF435A9BD640EC43C19C8C1BC3DC2B1BD2730D7BD69F1B3BD74368EBDA855A43CE97B0F3E48AC093B800110BE53DD0BBEB13614BE01C19CBD6CBB393D396643BD5D38F33CD1BB19BD9E9A41BC3F44E23CDFF92F3DC8EADD3D3F1BBB3D8E5ED5BC611FBDBD5894F6BDFA5DC4BD5E0403BD3A0C313D832890BD69102EBD9B4FCDBD3F35863C5AF46BBC254117BD43AEF8BC1620283DE60872BD3F0FBFBD05D4B9BDFDAFC6BDB2EDFEBCE20500BD811813BD1363FC3C38D8DB3CC6E6473D2939A53CAD973ABDFEF1033DF873553DD0491B3C6F1793BD1135F7BD6A049DBD9D26C83C7554BB3BBC3345BD862484BDF0B7103D99544A3D98C52CBCED526E3CF9B785BD2F25073CE09E82BD85D1A1BD783AF0BCB3EA2D3DE490D0BCBB578BBD919E54BBFD8805BDE2711CBDBC088BBD3D301EBCDD878CBD389368BDF125A1BC3CC785BDCAE7183C14228FBD1E25A43B43929F3C4238333DD5A0863C762F1D3D70421FBDE33B023CBA7383BD8627A3BD52DCCA3CF77B7FBD8C0A0CBC37486F3C4EA7583D304ABF3B6C7B79BDCCDC06BC80AE8BBDD68C6FBD58F22DBD71AC013DD9368ABD8E05803D2413423DF4EEA1BC643B8BBDAA1F8EBA60CE8BBD165E7F3C61CE56BDF64BE33BC4C84BBDF03136BD9D8115BD6691363C47A570BC0B966B3A65E8C83D8DD3CE3C51038C3D1394453D58EE69B9F894ADBDF1FFFA3CBE6515BD6DAF6B3D40E00B3D445A643DB93E2D3CBC427A3DF7E8CD3D1D1E873D541B043E6EEACE3D76CB853C17D3253D9900AE3C083343BDB78F41BDF653D03CF0A242BD3E34963CDF603DBD0C52813C6CA03BBCCA0BD53CE391A23D11E9E93D7528683DBC83813D59691CBD332FA6BB8CB578BD9E690EBCF1B5D93C7D5A6B3D11F057BDCB9709BE5B0184BD6AC9013C8FFAE23D97C3943D56EE413DE081C1BB117088BD89A4BD3BD00539BD2AF0E7BCD20A5A3BAAB3313A8C9AD93B40BCCB3C57D67ABD4965513DB35FA83B7F0ABFBD8256DD3CA0851E3D7616ABBD60F542BB789B84BD7512373DE0A55F3D96E42A3D9563203D0A35C53AF84546BCD86DD4BC0BE3A1BC0407F3BD2E1C7F3A8BB1B23C5CDE013D2F08FFBC607793BDC1E8323D5E32083BBB2E99BC5D7047BDC85392BDF53AC4BD1719B2BDF34F22BE650FA7BC196D4F3DD9E0633D1227753B64E872BD56E0543DD378F23C2292B73D713D913D1F4E913D76A043BD490EB8BD5900BE3B0DD5B7BDF41B6B3C2A96E93D3442A7B98BC0C23D44D5C7BC84C0B93CC07C3BBD3BD20B3D60F3A23DF870EB3D0F11E53D48D0133EAF068E3C45EE843C77ADC4BC729E383D5A08043D893E7DBC6B87B6BCD0D683BC390C98BD60ECE23CCE41E03DF9E3A93D23CE053D11E3FA3D866CE03CA3D7023D08AD4E3D96AF3EBBAAEBF0BCE20C2E3D3F0E95BD2F1A2FBC195A94BC5C1EAD3CA49511BD2D49D13C1FCD45BDD7258CBCB6706FBB229A8F3D2C30CE3C0C0488BDB0FCABBDF017B7BC6099D63BE3301B3DB6DB15BD4DAFBFBCA1B9733C741D3A3DAC0FEDBC3DC46EBD62832D3D2D18A9BC94AC303D56C0D93C9042BC3B46CE2CBD2B433EBD96C487BD42DB2C3DC6AA4EBCE57C9EBC2EF75C3D95C111BDE680A23D2F4C083DC61C863D2D7ACC3B3100BD3C74047FBD7242EEBB98E2893CFEC5DF3A1C964ABD1DA12F3CB6D9643D7C13EC3A95D4B9BC7B09543D8573023D506D9EBCA0C680BD7F1E7CBDB18E683CB6CE6FBD509D243BCCC31E3D2BEF8CBA85F5CF3C4A6DC03D554B343D43A0883C2559073DFBE113BD4F4691BCA12739BDF7A843BD32601CBEEFF308BE91DE3CBD59FB5ABDB8F0AABB66D59A3D62C885BC33F4BF3B5AB6623D27A9883C99BCA43D24AD3E3EB64B2C3E6770353DAE633DBD72EF1EBE9B2902BE62C07BBD8C95153D58865DBCF16C823D098C713D186A36BD01AC94BD5694D93D27E76B3E99F5273EDD17353E00E5823D791D3DBDC23408BE5ACA82BD4B66233DDC4B0EBDD266D33CAE77F1BCDE8482BCA4F9DABD7F625D3D042FEE3D90B8263E25AC5D3E94A4123E1ADD413EA0C01C3D1DA12FBDDEE3BA3C833556BDD8739B397830653DAC22913D641C84BD739F853DFEFDC73C07F59ABC2094CD3D9838F73D0ABB8C3D04ADC33DDE3E033C04B303BB7419943DB2DAA93DFD7762BC8F34CFBB215BB7BDCE6471BDE9E214BD79B1CA3C4FA8203DB4DBBC3D3583C23DAEA9FB3CA88A9CBC540F623DDBBB953DDBBD90BA21A9B73B1FE48A3D8F3A3FBDBD615FBEE3413EBE1FAE463CC4827D3D0C08A53B10B867BDCEFA56BD5A4EDC3CE2EF973D64D62E3C5BAF1ABB986AFF3CA318BB3DEA96D23B19B234BE9B5C0ABD5A5C4B3DA4B84D3DE2A5D4BC61F383BDE8B0AFBD9C726EBCE07D363D414F813D77DD233C20F68E3C92029EBC25F5543C909DAE3CDA65383D770B8CBD3FD0DBBBCEC71ABDA1AFEABD22F3393CCEAE8D3C6654653DE0811B3D9EA8B83D63F6C33D01773F3DED53FF3DA429623DE401F53C80375CBDD551B6BDE9EE01BE9E0E91BD408D67BDC2C2CCBCC9DBCCBC1F74A03DAD75A33D0487023D184B313D8C4DEA3DCF7E2A3D7C0E873DEB5A0A3D64305FBD7FD1F5BC22A99F3DD2C0BCBC3A1955BB4E9322BD338619BDEE4E943D3409843D002ED43C3301BBBC2DA6913DA810743B48E5AB3D12828A3C37A9373B7EFD6D3DD29561BD05C7BDBC30826FBB0CA3E53CE25B7BBCA49EB1BC90E976BD3E0BB33C763086BD9982453DA7DCF53CD1B790BDA6A6693D288091BD80963EBDC38FC83C32F59ABDE6A91E3D8C3B833C26C98DBD2B99673D7D10E83B24616E3D700D14BDBDDD2FBDE5AD85BD2933433DD32061BD5C5E8EBDF9949CBBB2B0473DF3B82E3DEF9A7CBC74A0813D336A303C99CB603D7DBE7FBD351613BD0CFAA3BD475FA3BD609333BB1B1497BDAD3F0BBD202DC4BC53AA33BD7BFD6E3D79D4AB3DC6DDC73B1DF9173E82A89ABC20DDEABD465D13BEBDE95ABDEA8AA53B223A893C50BC1B3D7043E1BC6DEFD3BC8E28AF3CFEED873DF824A2BB97CEE53D2691293E53B9B63C24A837BCA0F1903D0484383DB277713DD0FC0139B7B901BC5D9AEE3D781161BDB8596A3DD570EEBBD626463B063D183DAAC6CC3D1484803CD53D0BBCF84CAF3D3E20FF3D3C55ED3B7C7AD73CF7E64D3DD585CD3C5897573D393C2DBDFCC9133D3714FBBDADEA92BD412506BEA60C06BE750B96BE5AA3EDBDA2EB3E3C1980FABDBF41F3BD4F6635BD8D6B0E3DC7BA67BDAD6545BD589410BD11B3D2BD60ECF6BD000E0EBEE31FFBBD4104A0BD8063693D99FF603DE0AC6B3C917F90BBA96D83BD14306ABD977A39BD4E4139BD898154BD422CFBBD5BAC62BD135628BD85839BBDA15E713D5C664F3DB509363BDA84BF3C41E3B9BB5E5A803D6C3E333DEF9C39BD7EB3BFBC4E1C46BDD5392ABD15AAA83C922458BD72F8803D9F632C3DD06D033E2A10183D6203773B76A0073CC4B51B3D549C533D91D1BA3C99C2153D938CFCBC7C66EFB8C311E53D72CB1B3E6632833DA707123EDF63813DCAF85C3D339A5EBD6C3FBBBBE5F5813D0CA7ADBC35F015BC65527BBD8FEAA9BD33FEDFBC71664FBD11F7A53CF46735BCEDA019BDCB51A7BD334408BC5AD99EBD5EB6D9BBAC1C64BD9B80A1BD12154BBC1DD7EA3B025852BD7B93863D415D23BDBB57FCBC69D35CBD5A0E833C75FBFABC8375123C6E92A7BC2D7BB5BC48DD22BC5CFCBC3C4112A63C88494A3D8A5A683D9201A1BD9AA707BD311910BD22D655BDBFA05EBD73D36B3CEA358D3D28F112BD80F0E93609B9AABD196BA5BCE883ACBDC563613D0B181F3D8DD081BDEBF9083C60DBA5BCB996B4BC2B94543C23F6923CFAA474BDEAEC95BC6C5028BCB00C8A3CF636AE3C15A958BD3DE5953B5D37203DEEEA5E3D0AABCFBC57C83EBD89F57FBDC385FDBC6E9A6CBDD5FFDA3CBBF201BD43447CBDAC4F7FBC7513903D92B53E3C65E357BD62AE59BDEA0B1C3CB2DF2EBDADD08EBD809B853D5102C93D9C96E03C6A156B3D180020BCC08ED33BA514A73B1916473CAE322F3D6A1865BD69AE5EBDE0081B3C53FA83BDD8381B3DD63B1F3DB7BE613E14DA1E3E6735F13DFC7C8F3C97718FBD7FD8AD3C382BB43CDED62FBDCFCAC63CD6148ABD72E683BDC003EA3B2547293DD354643E62033B3CB5BFBDBD2EA214BDB52CA0BCB0E9ECBD94650EBD26EE11BD80D3423D6FAD5ABD3E90F2BBEDE8DABBECE2DF3D4759293E3FD8003D1743FEBD5B6A42BEAFC1CBBD14ABAFBCDC8143BDF9D33CBD3A38D2BC5FA2103D108B29BCD1F6A43B67BFB53D20FA753D531A823CF537123DB39AE8BD9815D2BD6C5BD8BB5FC6DA3D5E616D3D6FC7103DF8A11A3D74F9893D52B9253D13F0213CE656B93DFF7BE03D5A8F7EBC94158A3D432986BD3AD209BE613FD8BD2C5D893D8E18F9BC6C5F9C3D1D5F863DB204303D0796813D8F04EB3C094597BC354BAFBC36BB7C3D2D22833DAB6A1ABDF4793CBE3A0B00BDD36F383D2397693C5134143D658391BC432B8EBCF3BBF8BBD7E08BBDD827D93C8E835DBD25B1973D07038D3C388782BD162EF3BCB66A9F3CDDAEC43D0E57523D2428143B751A953DA3BB40BD1C8986BD4BC647BD92075CBDF847EB3A788ABABB2CCE16BD46C29DBD4240AE3DE3F16E3DF67508BDC9C56D3DBCD358BB5E972EBABA2E813DFFEA183D743072BD8BF228BD779BD0BBC53784BD8CA2AABC9BDAC53D1921833DDF2EAC3DFFB6D33C2022A63C524AC33C9D7ED0BCB32A8FBC3D3045BD5D8022BD041D58BC86FC6ABDA2AF44BD5E5E90BCE1D6E43C8E0FF23B5171623D1F758F3DF2B9B93DA7E0A13DC2345B3D3B141B3D9B03823B48268ABD34656EBC000EF0BC753A303C2F6085BDD078ADBCF57E88BD5343973DEFD4A33DC3BD02BDB37AFC3C1092503DB615803C22F86DBDE221073D00F83EBBD1268C3CDCBAEEBC5CA28CBD02A540BDE1478FBDA0DFC33CD441B8BC72D4C9BBC2EE483D960524BD808F2DBDE047513DB0E8123CD7BDD93C8C79893D7338FCBC081DD43D17ADF53DD346CF3D77229E3BBEC72A3D668FA6BB902767BDB987C93CF2120D3DAAB21FBD25C105BDA067783C29671CBD8AE6BE3D7EABA93D405CA83C0A71DA3DBA38BC3D6D36A73DF0BDDE3CC06DD63C9482273D6402ACBDD7C097BDFEC02D3D5B621C3D727BC53DCDDD663D4E42453C061EBABD7AD69DBBA5B4803D9A81C4BB570760BD356D7FBD6E4890BCA74E613D217C3DBD6ECEE33CFEDA0D3C1B438FBDCA98C43B8C8EE7BD8ABAEABDE36AF53D9B58913C3FB0AABCBF74E9BCE8A377BD7A6CB7BD6E074BBDDE9E76BDE51B213DE2C1503DEFF2F4BDA22E89BDB863C3BD6B4DA5BDB79ECA3D3EEB8B3DB03EB03CA00730BDB67CF3BCCEA982BDDE6779BC34C463BD0368A7BD0898F9BD3BD0E8BDEF4217BEA4D151BD5237FBBC494F23BD200881BD9CF1C8BCA0EEB6BDD70A1EBC65A08DBD25755BBC0AE133BDBF6B92BD82C259BB2AAF803C20FD5D3CEBD91B3D3975F43DA738783CB5EFCF3C6BA5E93C24B143BDD4103DBC962D883C100ED13C6DBC5A3D9B23793CDDCDE8BCEFC3C93D0DCF953CD192ED3C2469983DE96BB639C586F63C273E52BD7D8DF73C92F4B03DBBA9923D4391B3BC513775BC98619A3DC6541A3D1AC41A3D2CAAC33D15648F3C12450ABD91E89A3DF69FAB3DEEDFE53D8C87B13DBEF51B3EA6C7C53D2B3A69BC46506BBDD878DDBC425DC93DD703793D44BF2A3EE0A28E3D10BB003D8700223E45BFD33D4E30103E9BC4073ED970A43D0FED873D87BB0E3DCB0B83BDED14D53CA4BD533DC80EC23D9B9579BC3F75B93DAC981BBC4F6BCD3C88FDF6BB4CCF453C27F6843DA5DE703D8E7F173BF1F6D93B6080903B944EB43C5E96CDBA2205163D93D4E2BCBC30C1BD3B224BBDCFC106BE5DEF8CBC386206BC612E9D3B7F709BBD809DAE3C7CD0203D7E19D5BC2CC6EBBC1C58D6BC426A20BDF76D35BD55D8B3BD5F09F03C7CE1EF3B2745E03B53CB93BC50A766BDE45803BDC468D93B26AE92BC4057C53C32A02A3D77505ABDA50028BDEF30B7BC54393DBCFCEDB83C69C09E3D0643143D8943153BF48E5DBBF68988BB36CD193C81D80D3C6F44FCBC7B17933D25BD0EBD59534CBDBD909B3D10D405BC0645F9BC03BC4BBDA397E7BC756210BD51F8703D66F7743D206DEFBB70122CBD3D687E3DB63E22BDF70A983DC7A0FE3CC46D41BD362546BDC4E696BC03009A3D2E4FD53B049CF43DC287F93D5A03453D8016A23D003736BDCEE1EDBCA04A08BC346741BDA77BC9BD245DACBD992104BEC8CA643D449BDF3D189C22BD5DFAB23C82D38EBDDF03903CAC3F8EBDCEDA853DCE759A3D0F568A3C000BD5BDDC57C6BD4E0782BD65374DBDE2692B3D33B5BBBD6FA0A0BDB67542BD776CAEBC4A13B5BD3657C8BD0AD413BD594945BDBF0F8CBD8A9F25BCC67E363C9A671E3DAE58A43C737ABDBD53A120BDC350803A6CCAE5BC2B68CA3DEF3A913D889789BCA1CD60BDA05D6F3D470D273DAA3A4BBDB9A6B83D5D5DAE3D5CC2323B50FCCA3D58830E3C86031A3C80FEC03DB3D18D3DD3A1283EF2F2553D749F483BA13E6B3D63AC3FBDD1CBD83D4DA6DF3DCA083D3D13C5C03DF142233E0FE42F3E59AC113D856E093D31E9143DA834A73D248BCBBC10443EBD7FF7A83DEAADEE3C2C1D903A7111EB3D01B7773E3BC0763E9B14253EB04DEA3D72EAAF3DAAD1D6BCB7A6A1BC18E228BDE8EB453D5006B3BCD909173DFC0D0DBD09B9ACBD5F8542BD2A7B1C3E2D28F83DC8B8F83DB82D5E3D95C40D3D2D504CBDF606B6BC3C84BBBD6EEC533D89646DBDAEF7873C478C88BDE3EDE9BDA81D70BD2A41D3BD4CEEABBC8117C6BD55A4463DDAD9473DFBC8063D4CA77CBC1432E1BC9FCA393D05F5973B96A94F3D8B5B29BD70BCA2BDA04D583BB4A7CDBDB82D3DBD339A5F3D3FD5333D3B2F35BDA0E5B13D60B70E3D2A36843DA719683C94FD3C3D0BB17F3D2A8E26BDD62BE1BC5688BCBD2556CEBD2930A6BD2139CABD2158F3BD43D916BD4417843D4AB77F3DE51B1DBD9ABE1CBC050956BDDE40943C8EE0EDBCEBCD993D928450BD1E9360BCE1FA5CBD2246893C2CBEED3B22BD5B3C3E3549BD5D456CBCC8E48F3D60106D3D9E1A33BCDB661B3BE3C531BD4C2387BDBCD60DBCD7D03A3DD2502CBD9CEA68BD510D44BDFBF402BD058D233DA33F8CBDBAC49DBD9C2791BD904FF73C08B3493CF26EAC3B7A2B1DBD602AE4BC4A18A3BDC1DD3B3D0CC85EBD98B34FBD430D2C3D82163DBD5881923C417B9FBD27C13FBD2BDA4D3B191AC73BCAD94CBD408BF33CB44A0D3CA0AB54BD2670AA3C4E79A33DA6A53C3D61CD513C15DA14BC19191DBD8EDB10BDA5BA0ABCF71B0EBDD2599F3CED1664BDD3870ABD27B342BD4D7D63BCBBD8043D175B823D64D20E3E1B45F83D862F713D7785CE3CF24087B96EBB1E3AD015A83CC99BEDBCCAA1243C021E9ABD20F094BD6D045DBDFB27BD3CE86EC13D5CBF7A3D3AA5043DC447023EB21DCBBB7488B73D207026BD9C5AADBDE0D38ABCF540143DD2033F3D2B5FA4BDAF20BFBDEEF51F3D80B45CBDF4FE1CBE56D0B73C1B69423DA451783DD51F463C81E755BDF86D36BD5C48EB3CD39522BDBD37103DD494663DB85FB93B8796F03D658E5CBDAE9C88BD33B792BDB098F93BB45BBEBC25FF8B3C2CEBE6BB9ECA8ABD3C0BA6BCBDFC9BBD1AA30ABC4C11FE3DE2D7963DF601BA3CECAE06BDF56A3FBEAC96A2BD6639183D609D18395816243D0E82BBBC9B12543C199A36BB40620EBDBD9882BBE7620C3E437F80BB3E54573D1C9BEEBDEC78A1BD33B432BB4571433DE4BD323D7C39DA3C3323D8BC2FB355BD83E694BD33E011BD252D833D3AB4D13CC37567BC594E5F3DF8EE4EBD2441C13C65E71D3EDD7CAD3DC932993B2912AFBCE875E1BC07E91FBDC27245BC471014BDE3E035BB77D5883D78A4E73D45CC103DAC64173DF876B53CA8E7703D9C616FBDEC181FBCE744A53D3B5947BDDF8D323C6C41543C3DBCFE3B5BCA2E3DA2A0B3BCDE62C1BC4590FB3D626A183D3C0D533BC4D3E0BD7021343D07D6C53BD22733BDC562C7BC3F2A55BD25C9993CA79778BC89E18D3A5E6719BDDF584F3D3BA3C4BCBAF6293C375FA9BDD4028A3CDF2DB13C98CD663CADA93FBB90FD87BAFF054C3D4D14E3BC7F9F4E3DEDFA97BC90CB57BD720C93BD0B96CF3CDDC495BDDCEB55BDCCCAECBC4BEB1E3D144D553CBF7FD7BA4689CFBC40CA91BD33B206BDFFF1813D17934A3DCF6532BCC2BC88BBB744063DFAC7CBBC23AA813D38D7803DF7C2843DEDF90A3DB94D033D47C5CEBCFB1129BD9C2F813DE0F96ABD3F95E3BCC8C782BB0F6B363D936C6A3DFFD08BBD9483D2BC644A8CBC1AE443BD088E2F3DFD79C0BB344D2F3CA1F6D33C0B851D3DDBC7163DE283613C6FC9923D47BE9A3D800EB43CC34F7EBC0D2CFB3B5596B03BDC75C53DEB4A433D083C84BC48902FBDBF5D2C3DE754893C41493FBD365BC93CC70C423D4401B7BC28A01BBD30B4C6BD6A82173D093808BD4C479D3B0645303D9934B0BD665433BC3FBBB53CB3EB933D64866CBDECBB473D1EDE813D8884E8BB8152B5BDFA14E3BD69F21A3DA7324DBDC64A853D6CFB43BB3C80023CE2A6FE3C91F802BDAD8D16BDDDCBFC3C37C447BD5F3B823D91E8CFBCB87321BDFBE6243D2B2CF53DCA9B643B70A1A9BC521690BDD484853DC28E583DD3F0EC3C0E984C3D58512BBDF82792BDBE6BB63C116CBA3D12D7D93D7641623EBBB2413E99052B3D3E8BA83C25E19EBCB57E07BDF46CCB3DDD952FBDFE16DA3C279F83BD53F776BD07968BBD1CAA743B2FA58ABC02D2823D0E8F393E4309A33C40C23B3B54AB113DD2A0A2BCF4EAB9BCD3343C3C5BA6963D4C543F3DCA46EABC30F1A7BDBC2885BCB72A523D0B09403D0DE9CDBC25964CBD471263BD5655B8BD6AD5C43B74F0A3BD5502843D7DEC7E3D2E1A0DBDE3635A3D14B51DBD9550C83B1044803C896D333DDA7048BD55450E3D282DB2BBB79BA1BB201322BDF4B2B23CADC457BD245F123D2874A03DEA1A0ABDC7C69A3C1E90A1BD07E1DEBD00FAB5BC1C1EF43CA0E5483DC15AA43D6F34553C8FDEE0BDEBDCAEBD616B9F3C8873F6BCBA2B42BD86F8B0BC9F7C01BDC7E8253D425F2C3DFA5B1C3C2BD87E3DA7A7953D3AF0863D630668BDE3068DBDB524943B58079E3C7FD095BC68C5933D17DB17BC79F18EBD87CE9DBC7ED1C0BC996F97BDE5CEF7BC8F2A173B3F6C63BD87F782BDFD426CBD76B3273D8BD19A3C21EC50BD58F9853D55E020BCFA110ABC87CB80BD9909C5BCAE1BFC3CCD27DBBDAD8CBDBD0C9C99BD36C4773D2897633D753E05BDD522183D22E78ABDF76BFC3C8D1873BD910D6BBD85982A3D3E0C2ABD6B7C573D6096423D483090BD70C320BC43119EBD5AA979BD5B5044BDD541A0BC8D300ABD905F3A3DFB7A923C27CE92BDAC872ABD3B66B6BD36846DBCB37931BD49DFFDBCA57815BD2B6BB5BDD146943CED4C5C3D353EDCBC706078BCB95FF43ACEE017BD253CA2BDA443BD3CBA9423BDEDD99ABD42A3C8BD685419BE7B70B9BD592F8ABC306B51BD1AB285BD727E1B3D077616BD8AD520BD7660793DAA5F69BC4DDA8C3BDC594F3CC6C8113E98A71F3E85E7D33DFFE83A3D3DFB4BBDC5E2B2BDF3E0ABBDC540483DB5663CBD7E6E013D175A01BCC9E4BD3D0A2B2A3D9A08103E2BEA193E3B3E553E5A52143E4F23493D86145DBD5552B5BD2965F0BD6A4E59BD287605BD60C5AF3CE8D4153DD82C363D626BEE3C7E07913DEAA04C3D75B1923DF4C1C93DE17A053E9AF7993D2BB809BDCB3A1BBD6E0B6D3DE404B5BCD1AB833D99B77C3D1951BE3CB6C587BD75D383BD79901EBE8074EC3C0B1B863D4561063E12C075BBC6D6CCBDBDD6CBBB138E733D97DB29BDC96598BDF60A5EBC7830EA3A056B9DBCC7042DBE3926A9BD1DEA393D7E36173E39A02D3D580071BD0A29AEBD92195EBD529C6DBCBF3B4EBD3959233DE49CD6BDC8B853BD886CE9BC9F0A7CBD96FDAF3D5A2F023EB0D08A3DAB103FBD7FE2B33C3000523DC64C1CBC7A38003D05E94D3C283E9D3C3047E2B90330F2BD0E842EBCF2DFB2BD7B75D7BC72E39B3D0F9901BEA22F02BEECB282BDE3890BBCFC2E71BD3010ACBCA73488BDCDC544BDB334A5BCDBB04DBD9EF8C1BD1F1515BEBE602CBD6611C7BD4476ABBD67BC55BDC5A9AFBDFA899ABD2797A43C1D554CBBFFC837BDD4D0A73BB24080BCFC5652BCA1B6A8BD751FB0BBB02AF9BC63CA45BDCEB34D3CB631083D0225B2BC52603ABC7EC109BC1DD635BDAD7F293DDDFE8EBD9E88063D9312AA3C8ABA703DCFE9E73C648316BC557DA2BCA81269BC69E7053D965E9E3CCC29303DD29ACABC815567BD3F8AA53B87F31EBDAEC88BBDC75AD23CD8D9303D7EE9FF3C4ADD993D3849733DF01FBE3D0851883D3FCD0E3DBADC94BD095B00BD71B9D3BC0F8E073DBF2F873D1249FD3BBDAD49BC24081EBD06D9E0BC436B863BC523DB3CC505263D446E913D7C35A53D7AA6113C7CC4BD3B0F85033DC0DAC9BB9274BC3C2B362C3DF344963D5EB9003D00A4823DCD5E1ABD19799EBD50B155BD710DA53C258C073D9F5A26BDB65FAFBB836B5A3D92D9853A6E387A3D1AC6B5BB708C863C55B7C0BCA283F4BAD6D9E03DDDE3DA3D84320A3DF35B5DBCED5A253CCC3B02BDAF50153D97A68EBC91921E3D73A5DABC394CA7BD64E72CBD599997BD8CA8ECBB0D8DCD3D654E2B3ED66A033E1471C83DB85F1DBD93AD033DCD73123D436980BC9F0544BD8C368A3DFF44643CE9BAA5BBE540133ED78A023E98282BBC39B077BDA93EBBBDA76DA6BB7AFFDE3C6FB0843DD95BA13D4EDBC4BC4F191BBD43F2953C5E46273D606FC43D6A2BC73D0102DE3DE0939D3876302DBE97DD72BDC5B8843DE4E51D3D1B988C3D9727DD3DAC8813BD5DED19BC0A28A43C07FD80BC70DB25BC11734D3DBB695E3CF455FB3DFFE4353D48D55CBDC0F7DB3D48837F3D3162EA3D65574ABB4355113DC4628A3D662CBE3B65BFB03D208638BD447F38BDD60306BDD2B4CC3D8DEDA83DE690D1BCAF3F99BD1F0CF6BDD18504BD61A2533DD62A9A3D33536C3D718F8F3D92D4E9BC2EC62A3ADE8D993DF8BA453EA9140C3E6A67863D30557C3C9CB897BBFFDE28BE76925DBDAE5C9D3D86EC2EBD2A3E033D1D2F9ABDEE8C78BDD35BBC3DAE52073EC636183ED124B33D4C5419BDC3D4443D4C2F70BD7CBEC9BBC64FBABCD4D7CEBC0D18893C34FAA03D47651BBDAC899FBB816B213D75F1C03A54CC98BAD7D926BD650B173D00F0393D1FE91B3CA82CDF3D194E2E3C13F9363C755C2E3D47B82F3DD790553D224ED7BD2638B1BDA014A33BB27AA83C3EBE233E60E81C3D77C34D3BDB73913D8EF8A03D9639803CCDDD0B3DE6CDAA393FF2213D434CC33B3FE3B4BDA0B743B948D18BBDD16836BDA403193AE5DB363DCA323B3C0A9CFF3DC8CEC53DD8B2DC3B6763DE3AE47F533C44FFA73C3C83AABB881370BDE92C3C3D4E9A353D571424BDC4D032BDCF27BCBC7243493C5F20063DF83ABD3D30711B3D9B0816BD5351443D17A5043B15F70EBD3FEE59BDE989833DC43753BD5A8C02BD5C306A3DA09C4B3DB6B6403DF8451EBD97A65CBD1845713DCA1FA93C79D44B3DB52459BD538944BC87D192BDA5093E3D68BBC43BD6D6933C679F933CC9B7D4BDAC2FAB3CBFD2C0BC454A51BD51DC56BD5921343D49FF0DBDA3F478BBB0C21D3DD389693DFE4B3EBDA603743D60E9593D3E233EBCF3D18ABCE2D916BD3C3384BC6DE13E3D69B0B83D1E9855BD0FC5C1BC2A41D43C4D4866BD0AB8B7BCDF69813D3F80EE3BBA401DBD65547DBD0895FBBDC0A6AB3B528B58BD6CD56EBB89183B3D0FBA37BD7307353DFAC587BB2DB55E3DC31B253D5D71B13C840EB23CAB1875BD61D0BEBD5D37863BA9F5AC3D9E17D63C16DD733D74F599BB0B289BBD738EC9BD2849583DAACE203DD86D1DBD4C513F3CB8ECF83B8704B33DA02EA43D30D6213E427E143E85F1083D4018083C629EA43D451A8D3B1159F23C6B14793D376717BDD8AFC33D5259733C32AB153D671EEBBBDF27C63CFB41EE3D7114603EB21ED93DBA5F553D6059A43D2DFC6B3CEBE037BD1BD3603D4F4765BDEA848B3D02A928BDDECF8CBDAAF752BD985F313DBF641C3E122C0D3EAD50C03DE96ECC3D6EEE82BBC5110B3DCDEFB73C55DD87BDB4ECEF3CCE0F343C97CA1ABBA14DF13C372D883DF2DCDD3BBCE9333EE98A0D3E6A2D85BC619EBCBC8A21C7BD0F9190BD75C50E3B46ED8EBD5655843B632506BE5F0F85BD4496C53C420D72BC3910733C94D4EBBBBEA935BD232A77BD14986D3C330CFABD947E62BD6281A7BC8517023C110787BC3180E0BD4FB394BDFA5D42BEE3EC23BE4AD064BC1B85AFBDDB8ED9BD4E9A37BC7BC184BDAC0FF1BDA9322D3DDDDB893DA6FF3CBD3A62ECBCB8429A3B0524FA3CE041CD3C15844A3D3D7EEE3DA544173DE326F23D5278D23C055B93BB3B2DD3BD7A92373D6901833D51AB89BD65E04ABD80543D3D10EB36BD4D98E4BC087EA5BC2B4CC0BB38333D3DDD5F433D8C1E613D8860423C4C995EBC4E9E59BD6E4B83BB4AA9A83C9F1736BB7E6A623D9253583DDB7AF03CBA642A3DD85E6D3DA738FEBCDF07713D58E6513DF5D13D3DF446213C46B81C3D3C32DF3C86D6163D6A076D3DEC67E43C95DC04BC1A51D0BCF098613DA05F85BC3558463D48592BBDC6C96EBD039E54BDC8D3B93C1842D03C7A39683D9625273D6EDE91BCF3BB90BCDD805D3D3241963DB7FB68BCE32C08BDDA096D3D75F8AE3D842DE03D71DA033DBF50903CFD922D3DF2D6DDBCDC5299BDA6BCD0BCC631173D0BB33ABDF7EF903DFC62493B7C8B9EBD047D313DD4AE053E4B18A23D6133663D11D2B73D5F5EF3BB5BAEA4BDD8E56E3D8A55A43990F275BD14DAB13CCC39483DBB77ABBDE51EA3BD3E8F5FBED9481FBEDBEDABBD29E9EBBCB4A7E53C9511D73D97DFDD3CDEA53FBD25E1AC3CCE6982BD48ADC43CE38C3B3C0489B33C29A6FDBDF88652BE49A022BED611C4BD501F0CBE3804B9BDAA3798BDF8C468BD873E86BD1D7A49BD9844943B5D7461BD0C4FC83D0FAF253D457FEE3C930F62BEC5BE15BD4A8A79BD5121D8BCC80057BC485208BDB99680BDB4AABD3C203C3ABD86DC5FBD1B97843D54B0C13DDCD7B53D2DF5D03DD468B2BD0BB3F03D8CC01DBDA92B4B3D987D1C3DDC6C523D5B2385BD92CE15BDD2EC82BD6FF4DD3C3594FB3D8FA8C43DEC8A2E3ED5DEE53DB65BE93D799E9E3D1E98823D7B23AA3D4CADFD3DE3CF08BD24509DBD9DB189BC07D81ABDADCC9DBC77F5FA3D84E9143D8CC1DD3DE803263E47D6593D08EE933D599E8B3D2FE0A63D242D1D3DFC66193BC5035FBDCD10753D123744BD81DF02BE708F4E3C435FB7BC1CE0CC3B8272C1BBE5F4AB3D2DEA8C3DA5E8913DB340003DC6B97C3DA23BBB3BE9361FBCD22F5DBD680680BDD2C204BEB52986BDB4C9F9BD064B8A3DC47FFB3DF0F09D3DA5DBDF3DF6E64B3D92E2B6BCA6B60E3D99DD5BBC4ABC15BC1221643D3A9F6B3DFEAECABCCDF6A7BDBFE561BDAA178D3C1BD10BBDB20391BD91C122BC6C26C2BCA3FCB33D1C70883A86DB1FBC49787F3D660AED3C555202BDEE1AB0BCB703A3BBC6D1BABD914AF3BD716AA5BD75247DBDE05978BDD85EEBBB29CF96BD4EBD19BC33858C3CFAAF5DBDB2945B3D0A196CBD962F46BD490407BDE360D1BDB7A0E8BD7E8FDCBD09533EBD0760EFBDB006E4BDEC44AEBB7CB113BD0FFB8BBC48D96F3D886A923C8CAAC1BCBC4E99BCDE4C833C0D8C6DBC86E588BD02DED53C1BE458BD0A3F6CBD71177FBC6B9D1A3C943710BD670D143CD22A1C3D16C0A43CF461B3BB980B37BD48B3893C5CF177BD61ED8EBD49C425BD7408283DBFD6933D273DAC3D1F5AFBBAADA021BDC0372F3D84D82A3DFFB894BDFAA983BD126588BDB1438EBD0E0E25BDF3E19EBD39D292BD36A8ACBC3C9523BC67BEB7BD542AC6BD55179FBD66778B3C29EB41BD4F1D913C082F8DBDED7A91BD016A083CE79952BDB8909BBD06C7DCBB0DA5B43DB8EB073DBF6BEEBC3EBAD33C40D99ABCC9F6E2BD75C5C33C7BD5FBBC11C3053DC1A339BDEC4205BA9411E33CED5D5E3D17B18D3D7BD60C3E73108F3DE9EE5CBD649962BD60AFD0BD309EADBD3E5F2F3D743813BCE412D8BBC4702ABDFB2355BC484C713C620FB03D0F1F183EB0D5A33D6986BB3DAB8E433D11AD2FBCD3E5BEBDB84700BDC6FE733A46A035BD0A34B93C658A2EBD3FBBFF3DEF73C93D6E4E90BA57047FBD3307F13C6809D73C2F5EC43D12CEB63D9B07223D3C40CBBDBFA7AB3C3F86BEBB7770F43C243B50BCA774B13D71F2613DC0D793BB29D530BE9268B1BD5471E33D28B52F3E7DFE763D7004CABCAC68233CFDAD5C3D4A38D1BC8CCC8FBD7DDA1FBD11678DBCA7A67C3D75F727BC209F3BBD2B4EB73D401F0C3EC2E7A63C585D27BDB94A37BD3618003D3265823AF222EA3CD62CA0BD5306C2BDB3784EBD55C47DBD70EABCBDE037AC3A74BEB83D45FD85BC2F578EBDAA8F7DBB43A5B7BC7FF866BD4ACF92BD06DB11BD97BD133D79DD99BD72BE11BE49C1C2BD162D1ABEE5AC43BD63BE1B3DC68F6F3C9610EABDBABDE7BC60837CBD0055B4BCD01F22BDAE45253D6B0CD9BCA2F626BD0C52653CDC4194BDEF7093BD578ABFBD7DBB7ABD0F971CBE953F79BD2E8197BD78A3A73C92BDA03CD3B196BC38EC7EBD2E818D3C54F84E3D6145A83D4AD0823C581DF539E50EB5BCFFA12BBD18994B3C73610BBD90D31B3CFDB4ADBC50D087BB0CF3F9BC54EF3FBDFA5E04BD304550BDCF5DA63D0D1621BCFB4C723D26E65D3D1DA6CE3D5A27CF3D37DC293B4D9CE2BC809963BD9E4FA3BD12FA76BDE1F219BB66D9393CA67324BD87A27C3CC6F86E3D670C963D652F383DA50260BD7168503D3F2101BD9E0E03BCCC03E5390D0672BB0DFE80BD19CE593BBCED64BD52C375BDE0F6173CCBB3033DE982483BB1616D3DE5D720BBCA96FF3DCE1EF43D1D749B3D4931A63C6C4954BDD856A9BCDFC212BD24CA193D77B7403D3FC35FBD089B10BD77E381BDE99F1DBDB10340BD5669A83BBC509A3D30BB883D8CBC0ABDCC28413DCE29E3BC8F9A173DADEC6EBD371CB0BDF11E74BD3E95F8BC6C07FEBD2C4FDEBD74D360BDA12A91BD47C600BE19D9DABD39D3D4BDD84A46BDB6E0A2BD4710EA3C0A5C47BBDD4D52BD019B2A3CCD5EF8BDF81C77BD8FEA29BCBBBB503D46B67D3C459706BE3A1780BD564573BD54D2DEBCA506B4BD9189773DCE7150BCAD3FC1BD67FF69BD6D4CB9BC7A755F3D8A39953CC6DA173D484BE7BD220ED03B61D7C3BB902A69BB3F4CF5BCA149C73CB0C4E0BC8B303A3D517246BDE60F32BDD941CABC3EABB03DC39520BD75026ABD0A6E11BD31F3E63CBD80AE3D7017F43DF8A8DE3BE52E0B3D94AB333D107265BD4602953DD92B0C3EF680EF3DFA99C43D73AA5C3D57B4FABCB543AABD4557153D2ED3003EA77F853DBD71853C088E95BD9B6E9EBC24F04CBD4E7466BC7DBDA43C507EFC3D3820A13D2063A63DEFD80FBCD65E213D5BA9103EDD69B93DA2B67A3C94E7863CBCCD773D78BAF9BCB697A43CDFA7D03BCEFE08BDEDD5DB3DD3412E3E0D81F73DDCFE0B3E793EC93D385B293D0B54113D5727503D3CB9CDBB9F2A313D9EBAC6BC9D745B3D6E508BBDF01B223C7D49253DE4B7273D73C71A3E9099113EA0AA133EFA4D8BBBAEC1C4BDE3FDB4BDC4EA52BB40DF6FBACEE50C3C5607DA3904D762BD95C4ADBDB95A11BD6DB3BABD01DCA2BDFF9DD9BDB682733BB3EE6EBD1740DDBCC40102BD788FBF3C5B82713DED506B3DE69E8CBDD259D63BD4FD763B18CF0DBD14FDD4BDF17BEDBD4091D1BD708FA9BD7369CE3C4DC8F5BC461E46BD37AA57BD4F0B53BD6B2332BD02ED893B4364543CB51B793CB56285BDB3B360BD4773AA3B0BED893C266145BD769E43BC203686BDD857793DDD803FBD6A4A023BF747143D63B36F3CF15E463D4840B7BB81A840BD93BA14BD91D1003D9150353DF43BE03C06A28C3C61ACB3BBFD66AFBCD774043D4C4BCFBA25BF40BDE8E5373DA4CFA2BC2F3FE5BBBCA140BD0D5F7CBDB8D503BEDE18B33CE89491BD61009FBD34E37DBDD9C137BDD86E14BD78F5BD3C0BD184BD269D66BCA24D78BCBB66E43CE5E1D63C4D6E89BDC48C71BD7CB49FBDA23809BDDC0F8FBD885F8F3D58FD393C70DF793D5314BCBCF36C423D16E675BDF03859BC8A6DD33C0028353D7CDE0F3D553C143D1CC005BED9E7CDBDE05E35BD6BFE1FBD6E707C3CC432E7BC718716BD4E6BCA3C9E526D3C55BC34BDB47E163D99D7C73CE1AF98BD41DDA43C42061CBDBB03CF3C1B3927BC0F835EBD10900A3C8A1A1FBBB636B6BD40A4243DA074DBBC6A16443D98397CBDC84E03BC3B24A63D08BEE8BC674A9BBDD867013E88B9A43D56A57DBC9445B5BC1F7B7DBD3D5DA3BBA303E9BC7F0201BD3871F3BC96FBB43DB161E33DBEF5093E252B853C4F2A4BBDFEF9F23D6303003E5025FABB0D4C453C984920BDE771183D4C19533DFEA25CBD94968D3CC6FD833D66CE273EB194F33C38EBB2BD48F147BDC1A4DF3D946F1F3E7E48DE3D27DCD83B736754BDF1ADA3BB0AEE90BC5CAB69BD5E7A4ABD20448B3DEE8B973D8374CFBC618C7F3D0F69293EB925223ECC26B43DFBE491BCB23E533C7484113D041490BD04EA7BBDA2FE663CC1263DBC786AC7BD9429C2BC663E68BDBE10C4BD233B753DBE256EBD1BAC56BD0231F6BD7F9DF9BDEA7DD5BD3F32D0BB0DF295BD05AB6B3C8F0E4BBD032940BED03D21BE41D70EBE5808A5BDEA51BCBDD0ADAC38336CBDBD531C42BD27AC1EBD42BA80BD6A7FE53C096659BB83113B3DF82197BD3E01C7BDA523BE3CD575A2BD76605EBC92C1DEBD93E993BD17C70F3D735A883DE932503DBF7984BA66F5053CFA9A9C3C6EAD2BBD4CE444BD10A6933DD88BA33D06E9B93D046F28BDC1229ABD415C6F3D35D80A3D99E67EBCE89043BC773474BD9DF489BD2081B8BC59A462BD74091FBACEF856BC1142713CCB8885BDA29E8E3B5690023DE4F484BD881B4D3D9DC786BDEB1DAC3CDEA0413D1C32BCBC11EC2BBD5686EC3C4D932F3DD9F766BBB9A417BDBFAD5F3D7D1369BD6BFB4ABD69FA12BDF98D09BD7FCC38BD1E7297BCA3052D3DF1DF7EBDBF55E839BA5507BB70B2243D611B0F3D4A953CBC11BC423C9921E8BC6E688A3BABD693BCC5E3C13CD7C1B13CE650CDBCB762853D99D17A3D30963D3CE14292BC0E1D5E3DB503783D0C8F653D26A8973D4B24923CFABDA8BA7D4C9EBBEF05263D8BA878BD074682BD29565F3CB0F524BD7E9F143C8EFF03BB252E48BDBA21393D0A236F3D880EC53D17800A3C8027A63DBC1C0FBDEC638C3DF834B2BCCEB510BD2248983B1366863C931A80BC9485B13C55789BBC0BB423BCBF355DBCEA428E3D80717D3DDF3C19BDD82E2CBC1A9186BA7A2686BBD23B27BCDD996B3A5FFD883D212392BDFC8B7E3D840DF2BC5DD37CBD3975093D871F85BD224FC3BDAED565BD98AEA33D6FA1543D2F467B3C81C41B3D7D2875BDBEC678BD27F7703D90462DBDD81B553DFC2169BD447C91BD970CC1BD051C823C561577BD95D3D93C107730BD3DEFAE3CA6A81EBD300055BC8A4D953CAD6BC63C251E673D5844CCBC36CA6DBD09A29EBD4B338FBC07568EBCB4F0A83CC2AEA0BD09DC54BDA3E60B3D7AFDA5BD67861C3DC96C303DCA5ACD3B6E1FEEBCB241123CF519AEBDD6A887BDC2080BBD23DA4D3C27B7343C163FCABDB861CBBDFD9EC2BCEB50D93CF631703D12BDDD3C277C243DEBC54DBD6D266A3CC03A983C1F53BD3CFE0B843D587104BDE2AF8EBDFE678C3CF04CBCBDE18919BDB4FA10BD4BDB1F3DA646883B3617843AF38971BC3C871EBD4741843D6AF99F3D05AB753C080A8D3DBD24803C3AEA53BB7C776C3DD32F9D3C3D8BAF3D641A4C3DE3EADD3C48E05EBC5C00393DD8ACB03C60C3133C8807B9BCD075453DD9FB583C2A5DDC3CF0168E3DB52A873C4E5AD83D3A62EF3A8131453D0381D93C22C8DF3B2E4292BDC1C21D3D41A71A3C3F0391BD4F5B7CBCB93B82BDAC5D11BD575D56BD28E93B3DA941863D8313F23C41F6923D6140203D91F02BBD3ADDDB3C88B3263AB7A98A3DC8C9BF3C0DD5E9BC41C3513DE997A8BCCE65183DE47D67BDBCEC7FBD7A0535BC3264E13C60C5D63C52B11E3CCC9C51BDBAE03C3D51E4833C4EE1323DC84D9ABA967AB4BBBE8306BDE03038BCD667503C6A324B3DE909273D1AD8CF3C3B1C7FBAB2F16C3DC06AAA3CD043903BBEC120BD088B033DF9206C3DC674123CDF30A0BC9AD88CBB8F021D3D10CB4CBDE65C763D16D6EA3C9FAC183B4EEEBD3CD36AFC3C7D845FBDBEEC3A3DA6E78FBDC9D428BDCA7742BD843A6B3DF278283C0E5699BBEF62C4BB8C8DEEBC189E46BD2F4A063C248F03BD421D92BD4E77723DC86A88BC2E5D973D2CA150BDE54072BB626F39BDA23F043D26923BBC1C6AB33C6F60883CCCFA46BDDCFCA93B5960223D7B60853C92D18F3C73218F3C4B5C863DBCB8FB3C0A7CCF3DCA20553D03FCC83D2E83C73CBC46DE3B3882313D8BD3F1BBBED6A4BDA6F4763DC5AF8E3D6C22A63D503328BBE557E23D45120A3E2908A73D9AF77E3D5759073E745B8E3D3056693D43E7043EAB418B3CA8E4ADBD598B99BD83E876BD59360F3C7B35373DF200F33DE88D133DFE929ABD308EE2BD04A87FBD985F32BB5894AE3DD7B8293E8DFA6DBB100789BDD8146C3D2D9C1B3D5481E33D8633A73D8141853D7D2911BEB75928BEB23812BE6ED57ABDA2F4C33C3F8FA53CD3DEFD3D0332883DF6601A3DD84E87BD1F76D7BC8EDDAD3CF02A763D71759A3CE8F7A1BD0B916EBE43AC96BDB19357BD4AD4A53D6D55CD3D5546BE3DD2E5AABBB592D33C57C33DBC090D8ABD1525BABDB1621B3C4C53513D1BCE003DB5F972BD722312BD17E1C03C5B53773CFFA34FBDC15FA53C988B85BA126544BD825B673D7B22113D1ABB87BBCADD82BC222A01BD3DA8573D80ECF43D0336653D8A39173D7F00833DE8BA78BD74E9C0BC12E6FEBBB1CC57BDF49BACBC6401B83C3FE54CBD4941CBBCF4A691BC296D423D6209973D2A820C3D68AEC73C847785BDDE4093BCB58763BD0261343D906CA6BC3FF38BBDAE7798BDDD324CBD64C6783D30496C3C401C4F3C6524193DB6E5CC3D57F9423D0AA33E3CE627ABBCFF37513D901E483D8B1F97BD1AF89F3C8855003D4DC43D3DD1AF1DBC36127E3C28B9C03C2909723D168698BB57FB39BDB90A193DD74F713D3D49343D9289C7BC37E48EBD65F8D9BC4F29003C3977293CB8EF633A55067CBD86C2433B9DCECF3B4B3B833CC227913D32E68B3D165E6EBD24428CBDAB477D3C5E732CBD0AFC863DB30B96BCEC6D933C430A643D080DB6BD2D5C42BCA63B88BD2CF260BD86A5A93B9EE3A3BCD28BC93CEFD5D0BCDD538DBDB22F43BD83D57F3DFB689A3C59BA153DAA68BA3DB932B83D23599E3D8496CE3D3390E73DB5A0CA3C2164AABC9E3B403DB1C9293C9E1A773DA8187A3CA8BFDCBC2F2F4C3CB37EF63D77C3243E58E70C3E5EDB4D3DD09C6B3D4E83CABD2331DEBD2598133ECC9CF43DEF164A3CFAA5383C0F2469BB48AFB23C19ECAB3DA873D83C4661843D3B9ECB3C21C6C5390889B6BD6CA14ABD580C173DCE7E213ED7F0F73D8E2FCD3C5146DE3D6D4FB7BC0BF0223D4DC917BD17A06C3D1119BABC0E05FD39261B333C6B3684BD33C0CBBC0E84003EE487E83C203088BDC664A3BD13E4833D79851A3CC769893C313D93BCEE937CBC59DCEDBD44D52ABE760C013D66C7683D8CA1A2BAFEC7033D44DEC83B42CF78BDA50167BD24D0B7BD908B14BD375A1D3D34103DBDC3D7D0BD8B0904BE4C7503BECEBCD03B6E78143C21E6163D6C61623D9A8A003D2306703DFA78D93C46398ABD33E906BDC09D843D5AC49B3C4E12623DB8ABC0BDF7C1E1BD5A3764BDC81F493DCFAD14BD808B1F3D6F7908BD681E9BBC8000A3BC524A5FBD61444BBD48F34F3B1302373D78FB083E8901FF3D228EE03C288A8B3B15F193BC951A1ABC433DAC3C640082BD5ECEB93C965FCFBCF9A45DBC572FD0BCD364E6BC783D0B3D1FCE6E3DFA21E53DA504543D99177C3D365421BDC37AB83CF0F747BB7FB7F03C8C2C003D759FAD3BB544CF3B49911C3CF7D5C93C69EB813C190F123CC1F85A3D5479963D64DCD3BB5E20A83CF60CA23DB4A413BD903C04BB57B1603D265B053D7F9F69BD23BB463D7B0CE8BC4CCE783D9AAEA2B8C6846DBD1F8D87BC83491ABDD831983D2706573D1EE6B33DEE6E003D1AA4243D21470E3DCC8CE93C7A4A2A3D88E6713D74560A3C9E76FA3CB7FF50BD6B69B63C63D2E2BCDEFD1A3C3B090ABD0BB218BD200759BD955F963B5A73A8BB0E56663D02FF14BDF85EA8BB3F2D263D1E53A73CC85237BCACA349BD2A4B85BDD3D539BDE2D0B53C4853013C233345BD6855CDBC0E04F7BCB4D5CDBCEF5A67BD19D4003C37B268BCAA31873C0CA7133D574D80BD6DD190BD70DA44BDCCFFEA3CC38E713D300CC9BCCC376ABCB82D59BCC9F3EC3CE2D570BB785589BDD06442BD4EAD81BD21D678BC6D7C1CBCAC6D9D3D0127EF3D266DA33D2B087F3C8E0FAF3DEC3D383D5C273C3DBB8A8B3C6D9CFABC4EAF453DD06356BD5524FABCC6B4F53CD81EC13DB008973D4E499B3D70B7753DB20EA93D1533053D024FA03D57B415BD6F90A4BCC86453BBC34E9DBD64E374BCFE5C963D6B318FBCE66F72BDB1AF973CF4CBCDBD1C01C53DF46F76BC8C2BC2BCB9C917BD6449A1BD96EB75BD5F79133D5088103DA1FF7E3BBB61A43D71F947BC3F2B20BE794918BE78B83FBDA71B833DC6A3A4BDF5CCF6BD241EF4BD4DF6C9BD180B963CE406B33A262E88BD9192953BB6E63FBDE33B4BBDA262B3BD644234BE2427713D06AAE43D3ED3B9BD254483BDCF4850BD7F746FBD184A9CBD381789BDDAC59FBC877E193D2BE56EBD8C5E353CA2617CBBE3D114BCDD408F3DE02A9E3D1E6CE5BDD43B1E3D70B412BD236295BDB5369DBDE1C732BCD50442BC433B1339FE4A423CD841903C36BB03BEA80E32BE1DA3FC3CCE910D3DA20F21BDD7DB773B291BAF3D72D18D3D3846D93C97A886BD6EFB703DA896AF3D29AB5F3CD2DE533C236245BD26FF79BD7F812F3D1B558ABCADFA2B3D0598043DE463133E8808D13D9DC98ABDAC676E3DB315E23C08DD843D8BF07F3C4AC2A53D7EF6A63D6BCBD83CBCD0F6BC9E9E9A3B88B43D3D2196143EEE937C3DF4EF25BDB13F5FBD1F525F3D615D063D9A7D213D7C3C4E3B3296693C8B8EE23D4FB29B3DE2BCAF3DF12AA43DA6C7E53D2A15C63D207004BC514965BD3F37A1BC72044FBC03C15FBD2895B0BBE012F83C77F64BBC6D5F7B3D21EA84BC097FA03DAE31173C26C64F3C86B97CBDD76863BD91B480BC347C563C11E54CBDC67F8BBD6067993BB362D13C66DA3BBDFB1620BD7B7360BC5371E63CA649633CEEC0A0BD29AEEFBC37B196BD114591BD6A879BBD3F1E013C273AEA3CA79CC23C954F8CBCD56025BC374176BC9C791A3D443D4DBD759381BDBA55093D7AEF05BDE1C7733C93B5363DF28B9FBD955BC33CDC0E4B3C0220383DAB7156BDAE8D9ABDBA76513D548DA13D1275663DD626533DFB51C53C1B88AD3D2091A2BCD221513C9F7ABD3CA5B3163D0304483DD441873C22F351BDD53CF2BCBF9B2D3D7398743DDAE2543D09EB9B3D7A4DA73D6F7283BC56946C3DFF7ED3BDB96D2DBD4A7FA4BD4A2C143B144919BBD49444BDF03CC938559D9E3D3B27C93D25A7473E1E66033EA9CD99BB0EA789BD07F3C7BD491710BE49EA9EBDB76E86BD6AF409BD959D6B3C7DA5BF3DAC304ABD8199603C5966A7BC6316843D1F7E083E5E9235BA37F83BBCB4811FBDE6323BBDDEB0F9BCB7E64F3C671766BD85937A3C1AAE45BD38F545BDFCF1EFBDEC5F59BE022B14BEB8A79C3DDDA3043C42D2443D74BD03BDEE0CDEBD5E7BC7BD68C64EBD82541CBD3FC6F0BB9B12E0BD457A0BBEF78F12BE07034EBEE7EB4CBD311B363EDACB483C7EF00D3D3CE33B3D97C6B9BDFD15873C9FCB363DD159E83B909361BD1E40D3BDCDB765BD9FC395BDC82993BD87F9133E77F9203E65EC3DBD587623BD237E5ABDF240B1BDB58644BD6CDCD63C1FD208BD55F9693DED9D803D726066BDD0CCB8BDCB8245BDC6F2C33D4AD1FD3DA19476BD80E5CEBD44138FBA571CBFBCFC324D3DA11834BD6821C53BD5AFF7BC055FDE3D2631733DD9E8613CF200383D0132B63D3747C03D5DCE253D464F853D5665EE3D3689B83D01E8D0BB387432BD51C8C2BC1C7C353C1DFED03D1AE22D3E88AC103EA866B03D005A883DCFC7BABCD402B23D9BC0F33D82195C3D9161FE3D189C06BDB34B563DE189EABC909730BD8AAA853D3B74B23D2487DB3DD774B1BD56E21EBD5703E3BD3A08D43CB3B2BA3D830A9E3CF535133D07563ABDAAB846BC12DB383CDC536FBCA27CCA3C9DDB74BDA4685ABD2F51C4BDEDD6EABD564138BD11B312BD130F373C732C69BCD364FCBC4DE8893C6393243DB5A666BD880319BD2A94C23A24828DBD9E6E97BD5E18073DEFA9B2BD5436923C84B69C3CC64AA63DCD04E2BC86986BBDF707373D5289383C272C863DE56356BCF17D583D03AB813D11D76C3D6DE62FBD49D4873D339D5EBDCABE53BC3975C93B0FF8DE3C1B315A3DA1C075BD13A0863DA18DE83BA8A15F3D5961A43903A0813DDC815BBDF7B48E3D1C36293D5B3DC6BC8A3C783D9C321E3D84D2CBBC696D92BDDF1F643C773D2A3D66FB86BD12D2493C3B31AC3D12CB9A3D6F04AD3DBCE3E63DAB97D13C77F91BBC176C5F3D9C78E2BC06AF133DC273983B1CD808BDE4EB0D3DE09D3E3D94A088BD6173A93D57CF443D24A2C23D2C6AEA3D5041223E378F0D3E2DCD0B3D04C1893DDE92793DFFC5B7BD3F9F85BDB898063D00F8A33CCA87613D2D26C93B214FAC3D1CD5263CEE13FF3B0DAA903C72AF64BCE039D4BC3B1B09BEC5508EBBC2CDCDBD7A91543C2646D8BC70D577BC86608FBC789BF63C0C15043D417F66BD8F4BA9BD0EA397BD054CA53DC05A8B3C5CDC30BD186AAABDC462FEBDD7309ABDC8B9683DD89864BDA90AF23AC2BE12BDD7ABB4BDDCB97B3C70C2803D190C543E33BF763E8B17953DAE1E3A3DA88A3B3D7B06D8BD686075BDE46D013D130C713D0D2E00BD88F5C7BD5F1C86BDA616AF3B2F21C2BC35CA293E0C2DA63CE4C1833D3083AF3D2CC6EFBBBECC89BD6423043DE3D68F3D263A493D843D313C2DEA2C3DFBF11EBEB5B333BE41DF5DBEEB6836BE34C45EBC3EC32EBDED8430BDB3040E3D0199813DB0062BBDE7C7DCBC738604BC8886CCBB4ACD363DF4B9143D44BD7ABD655070BEF8A53CBEBF82BBBC21507D3DD61B433D5D1B0F3E90ABAC3CA45DB3BCCC5C0D3C3C23023D59A236BC706F3D3DB6466B3C35AD343C26E5AB3CEE5BC7BBA302453DBDDCAA3D70AB983D90033C3D0526813D07797F3DCBFE173CB6FE813D140438BD7BF4383D26435E3DC2840D3DA70AC23D59F04C3D351F7CBD197F00BD96114C3DFB4E993C63D7933D8A222CBD395410BD9D80973C36B8193DF779A43D47F53D3DF3FF393CB462DD3DB5F41D3D0D075DBDDDA5B5BD2C1E933BC90593BC79E53ABDDF9AD63AD5776B3C65E0FF3B8D68833D1813F83CAF54143D8961AB3C8572603B9A68353D969F80BDBB4AD2BC245E0B3C605B653DB236E0BB4C4F1C3D89F09B3C22C6963C7E3017BD328F24BD5237843DC15215BD67FA7A3D1C66BB3CCA2E5D3D3E283A3D773440BD9B16F2BC45F269BC10EE4F3C90D9263D1A8B403D6EC0203D6B78693D5D395A3D59C51FBD3282433D295ABA3D2945C23DA548353C3713EC3DA8BCE63D5167603CBDA1CA3C2FB596BBE05C68BD81CDB23BC8B8103AB34763BD82A567BCBEE133BDEB5D70BD9CBD3EBD1F5C54BDEC7BB4BCB5D5D33D4E00F73CE1510ABCBC768F3C10DC9A3C9E6B4D3D177B92BD072FB2BD5CF308BDB5061B3C3849A53A4A368F3D92A5703D9BA2CFBC318F87BCA58E95BD42CB05BC8397E1BB944EFCBCC9D3DCBC045288BD0D7395BD57E8E03C92F3713C31A089BDBDD203BE1B501BBE49F84CBD1CB001BED667E5BD217DCFBCE5D0323C14180FBDB57DB4BC9362A3BDEA9F073ED321EA3DEA1B853D028FA9BD207217BED58307BE5F3364BD55C713BD6759973D12D51B3D7C14753CF95B9EBC1144E4BC1640DC3C3E9E4B3D1202CC3D1461923DBE84123C10010EBC8C4027BD59BEC73DF9BEC53D8E28273D1086FE3C6E2C36BD6B760BBDB4B80ABD1288B23C1BB5CB3DA2DFF33CA450833D433F383E857A043E3663933DFA2A913D44C33CBC9FD482BC42C49E3DBEAE2CBD34DF03BDF1F247BDF8229EBB0F76CF3CCA25AD3D6B321C3E4798FB3D6DE9FC3C4FB2813D6D73493CD14EBB3B3F13123D1304F43C500069BDC0BF613C0376613C54D57DBD27884B3CE0B7F13C52A6153EAF648CBCE8EAE33C948E3B3D24D8C83DA6E5CE3CE7920BBD0CA8E9BC73B95A3D122A64BD4E1E0CBD7910E6BD1FF28DBD41F1D2BB96BC6C3C5654A93D52486B3B2661F13D4BC4503D62C02B3DDC24BC3C3CE67EBD3A2E393D24282FBD18B61E3C831C72BDAEB52BBD9472C6BDCAA5F5BDA3B98BBD3A410EBCE60252BD8681253DBE1E633D2A6194BCE07C5CBD0EB49A3C047FCFBC97134B3D0E1BE03C09EC12BC9E053BBD0D3091BCBD63F6BC791E65BD65C02FBD60F16E3C9CF0373D3A6DA63DB1DD66BD0801EFBC83F5843D01E736BB1444693DDEDF823DD7D31F3DBD82293D8B920F3CA43B7CBC0FE11FBD4DD53E3DA25A4CBB2038E93C15C5983C3FE2963D01583E3DFB69B7BC68F538BB5C5016BDB743F93C80408EBD536773BCA08413BC6C8486BD818C343CA5A016BCD8F4D23C73961CBD69C403BD43801ABDBE582ABD6A95143DE0471A3CAC41213D0AC10B3D92630ABB8C89E23B6605ADBD292AB0BCB03BF33C280C8B3DDC687C3DFE51AFBB379D293D9397623D4939163D2F019EBCC548643D6706A13D44994D3DE43387BDA8A97DBCFAF0713D7792B43DAB573C3CD2A6A9BCB28233BDB1105ABDB1483B3D0C68D33CD80CEF3CA67D6FBC4B5FD9BC7EF31ABEA0E328BE141C1EBA1ECF4FBD09476FBDD3C316BD71D9BEBC219AE83C1E57A43A4A8952BD02E7443D419AF43D06FE633D32CB053DCF4D15BEE2DC1ABE5D759BBD43C201BDC141DCBD22F9FE3C9F901EBD64B583BD34A56C3DDED9ECBC41C256BD8A1E943AF700E53C0AA6813CBC2EAB3C14D884BDD801603CD4E6C5BC975A4DBDEF48903D7165743D0073A8BA028BF4BC483D973DE4AE4DBD38ACDE3CB9B3A63DFA96EB3D6AD88CBCB8908D3CFAA3AD3D009D25BD5EE3CD3D942DE73D1A02A33D3A34EABC3E3A47BD8117393D17CC0CBCCAFB8A3DD72E5C3D47114CBBE9EC073DE676FB3C941B3A3D42D7A3BA372A9D3B1F1DFD3DE24E25BDD36255BD6B3E8FBBC3CBFCBC388E87BDC578E7BCA280E13DF23D16BC71107BBC1FAED03D2FDFF1BC6A91353C8DF3FC3C76B4F83C2AE9703D165E073DFF7F743C034391BDD071163958BEC8BC0ECE6D3D2BC8113C484985BDF2049B3D6176933D80CAEEBC8CCBC83C69A820BCA7B490BDCAD212BD3BE223BDE24D96BDC97D3ABD9B2CB6BCDED5E03C8D1193BD2CAAFE3C12B7FF3D367D7C3D289E373D1D8DB93D7F7B54BDFD76B43C613D853CA1A8173DDD540CBC77968A3C08F24BBD204459BD1566F43C7AEB83BDDE9D7B3CE367B63CA948063D0A4F133DF0FB293D717CE6BC3F7422BD63174F3D0813AEBCA14C303B9A9813BD49A8D43CC86B85BDE07469BD11148EBDB6BFC9BC47F3A13CBA2652BDBFF526BDC8EA813DD9A0E23C29955DBD7A1874BA0D72973CD7719D3CC29C85BD96EF313D62D509BDE2B8ABBD3E07BCBD7D601ABD47570EBDF1BA0F3D1835293DE2C587BD"> : tensor<128x196xf32>} : () -> memref<128x196xf32> - %1 = "krnl.global"() {name = "constant_2", shape = [128], value = dense<"0xCD2A5CBDFE3A59BD318FDEBC6ED082BC37D983BD4077343D6867E93CA99C6CBC8878A83D7F1634BD8EBC6A3D3112843D17F3343C48D8EC3DF1F9173D1E01C13CFC15A93CD4B22D3D4FA210BD6A32F13BD213853DC7CAAD3C397A00BD4E8AAC3C0DC014BDA1EC91BCAB1919BC3B2D15BD6D220F3D4286BF3DAE7D693DF2406F3D3E240ABD0DA765BD96D1043D4230083DF92BDFBBAB0A4E3D5897103DBF9604BD798316BDEB7871BDEBCD0F3CB48E083DE422A3BC6E4EB2BA2EDA193CD1B557BD3C7499BC0EF7B23D42DC14BDDFEF783BBF2D3CBC94A3BFBC7E5B60BDAB4429BCA6C2DEBB9B1172BD5492893DAFBD4C3D7636493D667E81BC3720003DB9DB113DE0D8423B165237BC8366343D6DA6C23D24AEB63C0FB9E6BBAB83C33B53428F3DA5890E3D3FE43A3D4771983D59AF123DA53E6B3DBB18EC3C201E593D36080F3D3AA0163D24A4A9BAD6FFB13D69F796BC9E35C23C2A470D3D423F02BDFCC0E7BC554A8A3CD25D043D59A625BDE95B5EBC71E3863D10B2C7BADA0F603D373D66BDC05E15BDFA9B49BDA410003D4E82B6BD5CD4AC3CD310C33DBE404F3DF79CDBBB5918D3BCA71B273D071078BCC659053C545308BDFC11113D52592D3CBD6F433B361B9E3B8884683CD3C231BDB48D60BBD5428D3C37DD35BD9967F9BCAC29A83CDE354CBD1B35093DFAFC753DE5C66A3D0408AD3D9280643C9A0D79BBBAC416BD"> : tensor<128xf32>} : () -> memref<128xf32> - %2 = "krnl.global"() {name = "constant_3", shape = [10, 128], value = dense<"0x91FE983DB8BA2EBEC4B3ED3D760124BEF651163C2F0F743D542D31BE1332DB3D82F2883E8B74EDBDADDE79BDC499BC3DD07AB63DC115313E59BD4FBC44BC2FBE698391BD5CB360BE14BB57BED06D073E830CEC3CA9C6373D070CFEBD5A88963DE2DF1C3E9260D4BCA45266BE0B002B3D9C507EBE70BF2A3E94E987BAA6C89DBC9FDC53BDB253083EFB481ABE9E02503EDA9BBF3D547985BDC77E95BD10E251392207FF3D1B5291BEEB6D013ED70986BE2198F5BC93CA063E9168A73D0AB44ABEFE8B57BD8B6CA0BE0BACB13D7355A9BD28BCE2BCBF68643E1213593D5C745D3D816A73BEF391743E03E4ED3D6B20A6BD24AED83D8726113E5F3D463D215CA2BD72BB173EC7DE31BE9FF90BBECBDD2C3E7F7B293EEE3F00BE6C0317BECD2A42BE604ACD3DDCD2413D0D459BBD4296C73C1C69D73DC1FF48BEAB7A31BE9945863E447A203EC24A58BE07A5863DE2EF2EBEAC8FC4BD2F46623E62F766BDBD3B163D0F8500BE9C1433BDECA225BEDFEAAFBD875629BE08372EBD17BBE1BCAEC316BD5245AD3DE9955E3CB409FFBC4BA2C0BC13C8093E217C263EDEC1353E2102203D69BC63BE9009CC3D53FF6C3E5DB306BE00CD5E3E74A1E3BB22DA2D3D8D9C6D3EE8DBD9BDDD4E0CBE5E936D3C56FFF3BD03B6E9BDBFFC25BD1F0FC83DE14DDBBDC69CDF3B7D2C6C3ECF88A7BDF7BF36BD46A374BEA88897BE9B5DEBBD12F87EBDFAC1C6BD46BE9B3DF1EC90BE0DA9B83C577AD0BD55F1013EAF2EFFBD788B1D3D6D161BBEA96322BCA535A9BD6505153E608B423DE657243DEC19643EF992803EDF48A13B0F5B043E17C3173E29C8CBBDD59A363EEA767FBC28D5A2BEAECF66BD386D6EBE588708BEFD02A83D86E0B13B911FE13C20B56DBDB73658BDBA32573ECF670DBED5F0D0BC1D7F863D37F504BE592FA73D33C56B3CE67ECF3D0579D1BDE86E563D39A26B3D0494FFBDEDED263E12E5283E9BF6893D7806F63A206E6DBE14D18E3EE8CB12BD5D0FA3BE616D023D9E7D0C3E24C805BE9C8E11BE34DAA2BD5F0180BDE3FD47BEFB1F86BE8FEDD83CA2D4143EEE3E2EBD664A71BC69C81DBE6F7DDFBDE84608BD6B3F7A3E29207CBE00C23EBE5996ADBD0BC4E33D0E415F3E8A8C10BE14C0BB3D8E5B9DBDDB2841BEEAEACEBCD02FB83DB4D8D2BD12B054BE83A825BEF4AF833E7750B93DA82F46BE45DF8BBE6BC44EBE4FC7E0BC62FE863D5F59B93CDAF194BD96950FBC1AA5FF3CF1AD43BEF86C8BBE0754FABD93491E3C4C05573D7A167B3E31C8DB3C4118943C38F74F3D809B5BBE8C4416BE41ED82BDEF18853E570FC5BCE5F710BEF8C144BD73974BBDD8200DBDEC6C9C3DE2BDB0BECA59053ED77FFD3C160604BE2BB4C73D4B0B4FBEA26A823C917F89BD7BC66ABE197F0EBD188D19BC0B48A7BD3F28283EAEC7573E4DA55EBD379CD9BD7EFE253D0015AABE7EBE01BEAE5581BE601F473E6CDDAC3CA971B43DA48DB6BD72422EBE7AF70D3EC50F5C3EE6197EBE111273BD2849D3BD2C4D393E855FAC3EDA9FD53CAB954CBD52035DBE4A458F3E786BB63D55F7313E6F6E2EBDAC57A03DA0F42D3E1855353ECCE5413E9ECA003E84AAB73D3758E8BE73E34B3EE1A8ECBDF24536BE4D2ACDBD97379B3CE1D676BDD0CD033E2F6FA5BED516D83DECE966BE19F3943D41295A3EC62E3CBEBA34C4BD3A0A323E3C5EA03D099EA0BCCF873A3D5D412B3C633001BE006B89BEA3EC983D1E81C93D258BA7BDD9DA9BBDEA39113E2A7792BD6AA5023E88663B3D406218BE0973ABBE27D0883CE606A5BDCC4D8DBB96DDC4BD2400E73DB027A5BDAF8F29B903B1993D8FE4233D344AF2BAEDACCE3D636BDB3C89473CBE8255403D0A64CABC8E27253E73C3C73C802180BDCAD2983D1650A7BDC6D4043D382BE1B99CAC58BE94D1033E5421F73D7752953D996059BE190680BD85CDB43ED636483EFDF3803EADFBDC3D196F10BEA6351A3DF29E6A3ED7425ABEB1FAA3BDC4AE4CBE0316B13CE8E08CBE859956BE29A0073E3151FABD63561A3D0BC6B4BE21C5E0BC221E5CBEE8D2223E2F623DBEC778703E33BB873D7224493D24DC06BE942F583D4B16143DB8756ABE27E182BDBFE9EDBC7DD2CF3D759AE1BD9D583C3E7D0F54BEA33E983DF071503D19778C3E8E36953C196177BD671F0ABE28DBD0BC66005A3D7E56FF3D8FE981BDC5A8A93DD297463E111999BAC458113E7B021E3DDF55373D3E2E173E535C67BEE667ADBD6C216C3EA8FEE4BD7949D6BD501520BE0BCBBDBD405403BE03451C3EFC37B8BD0D905D3D1E6667BD306E22BED0731EBC713050BE238BC6BD428A3ABD974C1EBE1066E23D644E4DBDE14284BE6C73343E4691ACBD9EFE8ABD9A6DEEBD8170A43D06437A3E68EFBBBD75FA3E3C82C8AA3DAE33D33D1D4EDBBC3E166D3D47E7BABD3BAF49BE5B1F873DEB44893DA4A7943CD6A729BE822CC4BD42DC2BBEAADC373E11120EBEC1D34BBEEA11BF3B177A803CEE9FB9BCB99A0FBD9E40B63DFC44D9BD4AA4B43C68BD0E3E3362173EE89EFF3DDE9889BEDDED59BE934D8BBD9639B3BD98E7F83DB3180D3EC486813EBE32083E58E04F3EF732893DCB18C13D101ED63C07AC06BC38B0003E8FE43BBEE68F46BD60F3893BD3C91DBE27F7963DB6CDCDBBABB2FD3CF8B83EBE226C6FBE5DDA9C3D9C21ED3C9E8346BEBA80B7BC726B5C3E70FC7BBE65A95FBE8F047D3E105F7DBDA7976DBC72C68A3ECF6C92BD15FE0FBEC8DBE83D41FA32BEDCD6993DE6D181BE1228143E4BC55C3E280DBBBD205F4CBE1F24F43DB37C31BE15C6733CB9C78A3D100F8CBCD88026BE36F850BD382030BEE0DFBABD71FBC7BB7F92E6BD6A5DA8BBD4E016BD857A153E55FA2D3E0751353E582E723EC52936BE0380FABD7A0C493D28688CBE485ED33DC97163BD8889823DE1E9463D86E608BE8A19183E205D93BB6DCC23BE30A908BB412213BE35A848BDF86DAABD15E3FDBC26DA853E69AF4FBEDE58013E6E4456BD656487BD5A65C83DF2B8C0BD3F3CDDBD51B009BD234065BDF736983CBB9CC6BDF7F99B3DB279A73E025C4B3D626453BE9A4402BEDEB39BBED9F9FCBDDA6EDE3D70D40D3EA17453BE3ECB83BED1DA7B3DF17351BEEA0AD83DFAEF093EF7C8513C17AB50BDD108A6BDBE47C6BCB576993CAEA8E73DEFC3983CFFC08A3ED3AA0F3CC20CF03D5C5F9FBEBEEE9D3C03197C3C1D1A06BE218BE33D10BD72BE8ADA343E997ACB3DF8D3213E4DF34EBC0240B53AC77A9BBC38BAD13D15EDBEBD1A0B9CBC58EB1ABED3A4DD3C3CEB27BE7E9A23BE2034463C1457B23DE36960BE1AD11BBE6AB9273D6AAA1ABE1EC1373C9E61043E166391BEF93A85BEF23CFDBD086071BED522863DB39E8CBD156C5CBEAABB69BDCC7BD23C3C5B563A0694C7BD8C4BD43DAC820F3D9A0E833D8E103D3E7E53C7BD2F65C6BDB73D1F3EE7A2BBBD61450ABDBBC76EBE9250003E583285BE7FC010BED085F43D0AA2B73D028F9CBEC7CF54BEF82EBABDC504E4BDADD439BD394E523E289CE1BBFA21293DB24121BC4579C6BCF4391D3EF4C5743E1043953D1D877BBCB6048F3EB4D6073D03F4E1BDDA6DCB3D838B7CBEDE75A7BE8CA381BD4056533D1D8F123E7029493E815A0CBD5F0CD63DBA4D5E3D9966803D8768233EDC9B9BBC742F473E2E9EE8BDAC062BBD97326D3E03A009BDD5E218BE6A4E6B3D0518BB3BFBF8403EE345863E1D4A8DBD0CA934BE2432013ECC2DD2BEE6A6803E1963793EAA5BC73D8897D6BD8C7F253E5E7F78BD3C1C7F3DAFBC843EC2D2263D7C23E23DF7FAB83D46D322BEBEBFFFBB4031BB3C1011FFBD05BCA93E2429823D822B873EC861EFBD5DBEBFBE06E06EBD865D9B3D4A37E03DFAF407BDFD6B3BBED0C2A73D88C2A53D6E06213E5B4BB43DABE6033EEBBA54BE6401D23C1D7B0E3EA4C741BE21F3803ECD8721BE6A19D43D224484BD75E898BCE2B4B7BCA2FF47BE241A6BBDCEFAD1BC377E283ECC6B5DBE884500BE9B33223E4E16013EAFB7233E632FC9BEA7B7023DBF0DE53C269F1BBECD69FC3D35CCE3BD0671393E6DCA893D936C5BBDEFA6FA3D53192A3E504A86BC8B31B83E907B2B3C71BD99BDDEE7C33D7D9C843E49AD1EBE4B799D3D7CAB503E8F9D9EBC072C87BEAF1217BD668CA8BD4516303E834F3E3DD7C384BD04E1B7BC7D46A7BD7DD38CBD417E9A3D23751B3E66514F3E682232BD1015833E52F3C73C0BD248BE9606643EBC72373EDBFD3EBDEAE74CBEAD8DF13C28D18FBDB35C35BE3A9233BD4F2E92BEB8E59A3C11B288BD27CB2DBD2027A5BD456AC83C5C18C8BA8B2D933DD120EA3DEF1273BD5E5C313ED487DF3B36E1CEBB64178CBC5E2985BE85590B3E519444BDAFB487BEC97BF1BDEB42A43D55ACB13C2BB4C43CF6811A3D7F36A0BD9E55053EEA47663DCED232BE022FD9BDCD61473D007C443EB39617BE4CC18ABD993309BDAC61283EB22800BE49E8DBBEFBB98EBC95BCBCBD2725B53D0BE4573D8C1D5F3E9ACE17BD1AEB94BC8EE9EEBABC32D83CD086C23D4D21EDBD85B8B4BD946E013EEE03453E3DB2B5BE72CEDA3C8CF4C4BA07B288BE0E0FC0BDD564263E80C5333E2F1340BDD1E8053E4C42F5BB9E2BD13DAE809A3C49FD81BD2B9AB3BEE730643E21E118BDB27C743D5672A53C9018E0BDA89FE9BD008BF5BDD1BE2EBE48B23EBED3F34ABDE110F73C3D106A3C4FEA6ABDE3CD94BEBE39303EC55391BC87072A3EDB24683E21482CBE71166FBE061596BE3F73DFBD23268FBEF26C83BCB95E9D3DA5197EBD977B75BD0B9A8B3EC04438BD56C4D53C2016033EE9A33F3ED4CE50BD5B1A713EC48FB13D320109BE90B82D3EB2E575BE5EB2A33BC0C3983D046B273E6F6834BEA862A4BDDC7B063EC95AEABDE25510BE1C0469BC03C3CA3C33D7C7BDD60987BD20C780BEF8494EB9D0EA26BD3952573DA66004BE2229B8BDE6E3EB3DE614D5BC210CE83D6591393EA14515BD2ACD853D0300ACBEEECFD9BC387E69BDDD49833E41D293BB55C4973EE191BCBDF0F1B3BD6EC70D3DF9C78EBEC9DF80BD300A7F39F4C88FBE4F987B3ED062713EBC63093EB11D773EA81F0F3D4171D83C2E3C35BED5C719BEA9317A3EF88B76BE567DA53D1DD22CBEF5FA79BE87C341BC6E7885BE74A21F3DEF046CBD1A5E64BE2D1F9F3DCE862A3EDD44963E2B5A36BCF4723D3ACA66C4BC77C1533E208B60BEF5F701BE870A01BED4AE92BD7FD73B3CB9BBB5BC4DB1CD3D12DF153EA7758DBD1628583EE388713DDF3175BE513B47BEC72009BE327B5B3E716D51BDCC5E16BE7A66763D4FD4953DBF659ABD50873DBE952933BD63BD383EECEF583C8C2E9CBC1008893DF3443B3E82F2023E0A884C3DC4056BBDC1ADFFBD185D463E3B887FBE9FB34D3EA802A33B63E4363E35534E3D6F9501BEDA7CB43D88CAA1BD908915BD98367CBEA0BC943EDD97DCBD68A688BE988F48BD1AED46BDCB24243E50BB2DBEF28413BEB0023F3E977D05BEFA80E8BAC6C45FBD639D52BE4F2B6FBE11CE733EB852233E3BCD1C3ED208E03DB29569BEBE9A5DBEF41169BE714C883DF0730BBE3BC3343E2C2486BCE8ED20BDB73F43BE1C2D8E3D89A13D3E459ADF3D8E6629BEEFF3693E6997993ADA522D3EB3F39FBDFFBB35BECEB1C43DACBA10BED75651BCA094DABDC4F997BD4701023E29686F3E9092B3BD28B03FBE882E49BE399187BD8EA46ABE6040753E3FA84ABE5AC82B3EEBCF82BE5754563EA4EEFFBD82E7A83DACC87C3B9EF3783E3465033CB6B48DBDC721F1BC4F7183BE15B98DBE6C8AED3CCE37AB3DA4A6BC3D4CFEB6BD9BA408BD5438D93D891B6D3D790B3EBE349B87BDABBBEDBDF835993D730255BEFFB9DC3DE32232BD73392CBE362F84BD9A346CBE00F747BE76A0523DEFA85D3D0DA53CBEC58502BD0D22B7BD17697ABE8384C63D68ABF43D8FC1353E81659E3C5072F2BC18EC64BD6D0F07BEF21590BE1E89C33DC6408D3C2542D83DDC31ED3CC68E08BDDFA62BBE1365D9BDB6BD84BDAC11203E344C2B3D61262D3E788EAA3D86FB813D8F6D563E0886893DC90A033CCAAC3F3EF2557EBE5F7CA63C151D093EB5B0A9BD9674203E4C8C273E34F73E3D30C71B3EF1318FBEC9BA023ED0CF8ABD499CDF3D67AB95BDBE0BFB3DEFA76CBCCAFA473E5948933D533622BE2571283EA284BB3C9EFC85BD9ADED13D1E21B6BD0C0620BD8008383D739971BDE3C1C6BCA1B0CFBEEF0B9ABB6E04713E3F2794BDEC923B3DA52DD43D0E732DBEF7D263BE2454DD3CA16192BD5F14133CC69C373E405D0C3E8CEE5ABE92BCC1BDEADEFBBDB155EA3D3BFF89BCC41320BEFADC2CBEF83872BCB46E31BEC36F89BE046616BEE29AD93D3489843DFC2049BE3F1802BE9E071D3E48108B3B1373C3BDD5BB74BB20FE2ABE038AD6BDE4AD58BD2B1F003E17D1C8BD4918FD3D70636FBDE7907C3E1EDEC73D69B889BD1E4799BE3F7779BE36944DBE2F941CBEFD9A62BE39E5C73D89842BBD7FF65E3C59F730BD5DF1D03C22FE2E3DFA783FBE6BB4633DC594A9BD40993EBEF29154BEE40BE0BC652A543D9B45D5BDC6F04E3DEA277C3D0D4F543E9C4B73BE0E777D3E777FB4BE1F1CBEBDB3F9A3BED999433E7E6C3D3E615A8ABEEB098C3D5AF7373DAE911D3EEDAF453EBB8CD33CD631A13C63703EBE2C7EB5BE172181BE8932EE3C6C6198BE6694E5B945C08ABCC6ACDABD89A74F3E6BA9333E4BB363BDC7DEB13DC4F851BE488398BD362CEB3DFA5543BEBEA658BCA52393BCC69E84BE8C8584BDE28F2A3D1BB7243D713A773DE236EF3CAB06CF3DC45F9F3D16BEC83DA3E705BE792956BE146DC13DB745D5BDC88E1E3DF0271D3EE432C0BC61D0493E2931E93D21A6D93D6B3FE0BC1B0DDDBD1D3619BD1755953DB001043E2CFB34BE7F5FE3BD9383753DCCD0083EBD79F73D8F35993DE11A1A3DE4F11FBE7393C43CE2ADFB3DA9AD073ED56D98BEED1547BE9821E63CC082ECBD1A57D1BD0562A53D8BC6233EED3CACBE89A7623C7069E93D916F9CBEC6929A3DF28C02BD7CAA873DF4F2B73D18256D3E74838FBBE99E6B3E2B4E0DBD1F840BBCF8ED2ABE0978673EC58C52BCA63815BEFFD0A8BD1C91FCBD23380F3D3EFC25BEE9C81A3EF4B29CBEEB63553E1B2A88BE70241C3ECC6B393DD65672BDEF1A4E3E584FA43DE1B81F3B6CFD39BE9596453E1B3FDEBD5C9A8F3D15F17B3DFD3EA3BC62AF57BE49E283BE11F4E53C3205303EBB5A103EC6AF58BE"> : tensor<10x128xf32>} : () -> memref<10x128xf32> - %3 = "krnl.global"() {name = "constant_4", shape = [10], value = dense<[0.0360819325, 0.0303174332, -0.014957685, 0.0604293533, 0.0917338133, 0.0978015586, -0.0705472528, 0.121654645, -0.039008636, -0.0469057448]> : tensor<10xf32>} : () -> memref<10xf32> - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x1x14x14xf32> - %alloca = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - affine.store %cst_0, %alloca[] : memref - %4 = affine.max #map(%arg3) - %5 = affine.max #map(%arg4) - affine.for %arg5 = 0 to min #map1(%arg3)[%c28, %c2, %c0, %c2, %c1] { - affine.for %arg6 = 0 to min #map1(%arg4)[%c28, %c2, %c0, %c2, %c1] { - %7 = arith.addi %arg5, %4 : index - %8 = arith.addi %arg6, %5 : index - %9 = memref.load %arg0[%arg1, %arg2, %7, %8] : memref<1x1x28x28xf32> - %10 = affine.load %alloca[] : memref - %11 = arith.cmpf ogt, %10, %9 : f32 - %12 = arith.select %11, %10, %9 : f32 - affine.store %12, %alloca[] : memref - } - } - %6 = affine.load %alloca[] : memref - affine.store %6, %alloc[%arg1, %arg2, %arg3, %arg4] : memref<1x1x14x14xf32> - } - } - } - } - %reinterpret_cast = memref.reinterpret_cast %alloc to offset: [0], sizes: [1, 196], strides: [196, 1] : memref<1x1x14x14xf32> to memref<1x196xf32> - %alloc_1 = memref.alloc() {alignment = 128 : i64} : memref<1x128xf32> - %alloca_2 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 128 { - affine.store %cst, %alloca_2[] : memref - affine.for %arg3 = 0 to 196 { - %7 = affine.load %reinterpret_cast[%arg1, %arg3] : memref<1x196xf32> - %8 = affine.load %0[%arg2, %arg3] : memref<128x196xf32> - %9 = arith.mulf %7, %8 : f32 - %10 = affine.load %alloca_2[] : memref - %11 = arith.addf %9, %10 : f32 - affine.store %11, %alloca_2[] : memref - } - %4 = affine.load %alloca_2[] : memref - %5 = affine.load %1[%arg2] : memref<128xf32> - %6 = arith.addf %4, %5 : f32 - affine.store %6, %alloc_1[%arg1, %arg2] : memref<1x128xf32> - } - } - %alloc_3 = memref.alloc() {alignment = 16 : i64} : memref<1x128xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 128 { - %4 = affine.load %alloc_1[%arg1, %arg2] : memref<1x128xf32> - %5 = arith.cmpf oge, %4, %cst : f32 - %6 = arith.select %5, %4, %cst : f32 - affine.store %6, %alloc_3[%arg1, %arg2] : memref<1x128xf32> - } - } - %alloc_4 = memref.alloc() {alignment = 128 : i64} : memref<1x10xf32> - %alloca_5 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - affine.store %cst, %alloca_5[] : memref - affine.for %arg3 = 0 to 128 { - %7 = affine.load %alloc_3[%arg1, %arg3] : memref<1x128xf32> - %8 = affine.load %2[%arg2, %arg3] : memref<10x128xf32> - %9 = arith.mulf %7, %8 : f32 - %10 = affine.load %alloca_5[] : memref - %11 = arith.addf %9, %10 : f32 - affine.store %11, %alloca_5[] : memref - } - %4 = affine.load %alloca_5[] : memref - %5 = affine.load %3[%arg2] : memref<10xf32> - %6 = arith.addf %4, %5 : f32 - affine.store %6, %alloc_4[%arg1, %arg2] : memref<1x10xf32> - } - } - %alloc_6 = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - %alloc_7 = memref.alloc() : memref - %alloc_8 = memref.alloc() : memref - affine.for %arg1 = 0 to 1 { - affine.store %cst, %alloc_7[] : memref - affine.store %cst_0, %alloc_8[] : memref - affine.for %arg2 = 0 to 10 { - %6 = affine.load %alloc_8[] : memref - %7 = affine.load %alloc_4[%arg1, %arg2] : memref<1x10xf32> - %8 = arith.cmpf ogt, %6, %7 : f32 - %9 = arith.select %8, %6, %7 : f32 - affine.store %9, %alloc_8[] : memref - } - %4 = affine.load %alloc_8[] : memref - affine.for %arg2 = 0 to 10 { - %6 = affine.load %alloc_7[] : memref - %7 = affine.load %alloc_4[%arg1, %arg2] : memref<1x10xf32> - %8 = arith.subf %7, %4 : f32 - %9 = math.exp %8 : f32 - %10 = arith.addf %6, %9 : f32 - affine.store %10, %alloc_7[] : memref - affine.store %9, %alloc_6[%arg1, %arg2] : memref<1x10xf32> - } - %5 = affine.load %alloc_7[] : memref - affine.for %arg2 = 0 to 10 { - %6 = affine.load %alloc_6[%arg1, %arg2] : memref<1x10xf32> - %7 = arith.divf %6, %5 : f32 - affine.store %7, %alloc_6[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc_6 : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 28 , 28] , \22name\22 : \22image\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22prediction\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Models/BasicMnist/BasicMnist.res b/mlir-assigner/tests/Models/BasicMnist/BasicMnist.res deleted file mode 100644 index eae0257..0000000 --- a/mlir-assigner/tests/Models/BasicMnist/BasicMnist.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[1.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00,0.000000e+00] -54768 rows diff --git a/mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.json b/mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.json deleted file mode 100644 index b7f971b..0000000 --- a/mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.json +++ /dev/null @@ -1,272 +0,0 @@ -[ - { - "memref": { - "data": [ - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.029637714847922325, 0.7467845678329468, 1.7777715921401978, - 2.796030282974243, 1.5104787349700928, 1.5104787349700928, - 0.36493754386901855, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.09764464199542999, 2.5414655208587646, 2.783302068710327, - 2.796030282974243, 2.783302068710327, 2.796030282974243, - 2.783302068710327, 2.4141831398010254, 0.6067740321159363, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.4922199249267578, 2.5414655208587646, 2.808758497238159, - 1.7650433778762817, -0.4242129623889923, -0.4242129623889923, - 2.0323362350463867, 2.796030282974243, 2.808758497238159, - 2.2869009971618652, -0.15692004561424255, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.09764464199542999, 2.796030282974243, 2.783302068710327, - 1.2431857585906982, -0.2969306409358978, -0.4242129623889923, - -0.4242129623889923, 0.4794916808605194, 2.783302068710327, - 2.796030282974243, 2.783302068710327, 1.3831963539123535, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.2842023968696594, 1.7777715921401978, 2.808758497238159, - 2.5414655208587646, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.09764464199542999, - 2.668747901916504, 2.808758497238159, 2.796030282974243, - 2.808758497238159, 1.7650433778762817, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.22492696344852448, 2.783302068710327, - 2.796030282974243, 0.466763436794281, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 2.159618616104126, 1.4977505207061768, - 2.5287373065948486, 2.796030282974243, 2.783302068710327, - 0.6195022463798523, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 1.5104787349700928, - 2.796030282974243, 2.68147611618042, 0.08491640537977219, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.09764464199542999, - -0.4242129623889923, 0.6195022463798523, 2.5541937351226807, - 2.796030282974243, 2.5541937351226807, -0.042365945875644684, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.09764464199542999, - 2.5414655208587646, 2.783302068710327, 1.6377609968185425, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.0013492107391357, 2.783302068710327, 2.796030282974243, - 1.7650433778762817, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.8740668296813965, 2.808758497238159, 2.796030282974243, - 0.6195022463798523, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.15692004561424255, 2.4141831398010254, - 2.808758497238159, 2.796030282974243, 0.36493754386901855, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 1.3831963539123535, 2.796030282974243, - 2.783302068710327, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.1286314725875854, 2.796030282974243, 2.783302068710327, - 0.8740668296813965, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.029637714847922325, 2.5414655208587646, - 2.808758497238159, 2.796030282974243, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 2.808758497238159, - 2.796030282974243, 2.159618616104126, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.22492696344852448, - 2.783302068710327, 2.796030282974243, 2.783302068710327, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 2.796030282974243, 2.783302068710327, 2.159618616104126, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.22492696344852448, 2.796030282974243, 2.808758497238159, - 2.796030282974243, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.15692004561424255, 2.808758497238159, 2.796030282974243, - 1.3831963539123535, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.22492696344852448, 2.783302068710327, - 2.796030282974243, 2.783302068710327, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.8740668296813965, 2.796030282974243, - 2.783302068710327, 0.8740668296813965, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.905053973197937, 2.808758497238159, 2.796030282974243, - 1.6504892110824585, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.029637714847922325, 2.5414655208587646, - 2.808758497238159, 2.5414655208587646, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.8740668296813965, 2.796030282974243, - 2.783302068710327, 2.668747901916504, 0.08491640537977219, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 1.2559140920639038, - 2.783302068710327, 2.796030282974243, 0.466763436794281, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.7777715921401978, 2.796030282974243, 2.821486711502075, - 2.796030282974243, 0.6195022463798523, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.6195022463798523, - 2.808758497238159, 2.796030282974243, 1.1413596868515015, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.2969306409358978, 1.7650433778762817, - 2.796030282974243, 2.783302068710327, 2.668747901916504, - 1.6377609968185425, 0.09764464199542999, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 1.6504892110824585, - 2.668747901916504, 2.796030282974243, 2.274172782897949, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 1.1413596868515015, 2.668747901916504, - 2.808758497238159, 2.796030282974243, 2.5541937351226807, - 1.5104787349700928, 1.5232069492340088, 2.5414655208587646, - 2.808758497238159, 2.5414655208587646, 1.1413596868515015, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.08491640537977219, 1.4977505207061768, 2.5287373065948486, - 2.796030282974243, 2.783302068710327, 2.796030282974243, - 2.783302068710327, 1.4977505207061768, 0.21219873428344727, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923 - ], - "dims": [1, 1, 28, 28], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.mlir b/mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.mlir deleted file mode 100644 index e3841e8..0000000 --- a/mlir-assigner/tests/Models/BasicMnist/DotProductBasicMnist.mlir +++ /dev/null @@ -1,118 +0,0 @@ -#map = affine_map<(d0) -> (0, d0 * 2)> -#map1 = affine_map<(d0) -> (28, d0 * -2 + 28, d0 * 2 + 2, 2)> -module { - func.func @main_graph(%arg0: memref<1x1x28x28xf32>) -> memref<1x10xf32> attributes {input_names = ["image"], llvm.emit_c_interface, output_names = ["prediction"]} { - %cst = arith.constant 0.000000e+00 : f32 - %cst_0 = arith.constant 0xFF800000 : f32 - %0 = "krnl.global"() {name = "constant_0", shape = [128, 196], value = dense<"0x4D74043D7D6E13BDB90996BCDBECEB3C433E93BD4B221D3D957B9BBCEECC023D3C76BC3B12324DBC6418823CE83082BADD1DB13CF34F04BD06831EBC90B130BC270AC33B31DB06BC3C51523D430AB43BAD6C67BDAE918FBD70AC1BBD7F312DBD2C20E5BC42EAD1BB3F9C063DD9AA0C3D782698BDB0691F3D3D8C683C3FDF363D82F42A3D31B017BDFC913CBD668107BD67D9A23DC9686FBC9545353DF55E7A3C1AD4B23DC80F05BDB5FF473DA320F4BAFA1D23BD2511863D1074C8BB7A3BD33B145CBCBD93FA06BE96E3FABDBED917BD24B6533DB6A3CA3DB0152C3E90C9843D2C61F8BB85DD2DBD726C4A3D87B8A03D3C11B4BBB6F0993D09BB15BCABD38CBDDE2D81BD2B91013DA264193D3EC7013ECC33BC3DCA6D09BD0734123DD7F70FBC5F65483D48648E3D791A063E8EB2213E73B14C3EBD84743DEC347DBCDAA7B23C57B2B5BDE78A1BBDBFCC703DC172C9BB2C471D3D00A525BD17E418BD06B1063E4DB49C3D6DDE373E6BB1EA3D5CC898BD7FEF0F3D5A07B4BC0751E7BDD9D11EBD1E5AD33CB078163C32CF0DBDEBCFD0BC9825483D10B182BC1D99433D844BDE3C5D52FFBD577DE7BD27EBF03C342D3F3C8934D13DB0F6963DEA499D3C8D80273D9425813D05946DBD6D30FABC8476CB3BFACD7E3BC62C1DBCEDECD2BD12200CBEA297A4BD6F75693D90E0133EFE0489BC58D28F3B61E966BD066D92BD8F96F7BC94413F3CAD6D9A3DD899E7BCC6193A3DDE0D613D2B9902BDB0999B3B3DA18E3D5998273D4FAF04BC16CAC4BD64078EBD7F4318BD13FB07BD61BFB7BD5A81963BBB72AA3C9B67183DB217823D8C541CBCA426543D6D7A323DD65E3DBD4C12183DD85914BD02A309BCCA3E93BD0E4681BD1C01C8BD2C99C8BD2081CD3A715B033CEF67663DE1E1183E8482E03DD4BA993D6E3826BD765F59BC2DD637BDC411AABCD9737BBD637018BDB2C111BDE43B8A3C03D1A33CC630083D4E82F03DD870213EDF87D93DEBB5863B57487CBD78DE153D9E39D4BCC6CC27BC6A2C87BD2F2D98BCD35453BD3FAD833D288879BD02D76DBDF7CDADBC9C5936BD1C06863CDA9049BD9A583BBD0230ED395670413D3F1960BDC062D33C69421C3DE87D7E3DE27A6CBD81431B3CF8917ABDCADD543DA58D10BDCC87103D62FDB7BB19F359BCBF2424BCA847903BDE6ED43C6B8D733B4CD7683CF50593BDF5D3343D345F483DC8261C3D12B42F3D3FF552BD22D931BD53E8023D323DA0BDB6F7633D069682BDB3BE6DBD96A9DE3CF3376CBD7B0595BC1981193D59A84F3C4C05B43C5FF202BDFA45C5BD78DE55BCD94DBFBDE77E93BD9E9815BD94BDA0BDDDC2243D1573183DFB6C69BDC6DF37BDE031D0BAB7F8C43C3A70063DC62F0C3DB722DA3D43B7013D90899DBCDD5425BDB53623BB89CFC23CD7BC09BD7ED17FBB82D9563D545C503D14ECD4BB94FDA33DDF54DE3D794D0A3E26A3243EDECB423EF779E23DF26F013B4A0D8B3D6C9B463AD88E59BDAD350C3D450BE6BCB10ADA3D5CE531BBD223AB3D6196183D1EAB0E3E0906863E4F6C1B3DA55E033D7B6B873C1D41273DD1F815BD48A3C3BA2AEDA8BCDB5FE53CDFA39E3D2D17FC3C6E5629BCBC5F25BEA442F4BD9672163E637F073D0A736A3D91FF0F3DEFD986BD133FD13B0B0F073DE0D175BBABB722BDEB608EBD21B698BDF34F00BE598C5FBE2FA8B8BD4E731D3D1DFA033D614577BB902AF3BCE3ECA1BDCEC5D8BD8110563D026DC53B6999903DA6C23ABDD2DD3BBDDA81CDBD0760B4BD983C0B3DE01BABBDC1443DBC274C4A3DF69C0D3DAE4791BCFB2049BDCB1261BCC278A7BCB8F253BC9362B73CF94AD5BCA41802BDFE4C43BC1FB0AEBCC8F236BDE42D70BB97A82D3D6735833D33CABCBDD14315BD4B2EF3BC1A4B43BD720C11BD683D983C66807D3CD0C545BD04B498BDC46259BD0ECF383D563D3BBDA9C632BD4F1C84BD76D8B2BD1A86BEBD5BD44EBD3126133D5CB7F93BDA94BEBC06441ABC5AF7D93CB8B2423DAC42C03D96948E3D8F217C3DC6B714BD7B09BEBD7C0CC8BDA2BEE73CE86498BCA200B13CABDA3DBB998C64BDF608683B0820703DB5D3CD3B72A518BDE417A43D844F863DB457FC3A943CFF3CC739453C5A580BBDDC81663D3827E63C52DD9D3AF5AF84BCC05238BD6AD7C43DF068023D65AD0B3C4B47053E11CAD13DDEC76F3D3894FABBD2E0E6BC509F8F3B9DB4423D2E707ABB44E443BDEC17693DB3804ABC0FBA2E3DA1CAA03BCE31583DCD8BDA3C515554BDDB2C183DD8F449BC82AE91BDC9B6EDBC69D0A0BDBC2151BD4BA984BDCC7A123D6D5CE0BC41FDB8BCCB5D0B3D6909D63CA87F25BD677E293DBB968B3DAE00F0BC3FD7793D63BF64BD9C842BBDB34495BDF278513DEE95963C214B8D3D42452FBB94E5943CC13292BD370E9CBD9C6E3A3DE56C1C3D500CBE3CED3F06BCAEC95D3CC795C23BF203443C602B85BDD8AF743D58096D3D69D9C03DF995323DCBE8DDBDA1F305BC5725A1BDF662563D2E59163C2D64A13D63272EBB5EAF093D4E9B48BDB9208ABD0DBC2C3D0FF48A3D00FC293D55617DBDDBD19F3CE2B9BDBA11B00CBC46B464BCDB6C513DE286ADBC07158E3DB72E8EBDA2B11D3DE2149B3C7B6822BCB9E4AB3CBCFD9EBDAC88E23CD7DDD53DD7D796BCAD738F3D00828DBCE09CF43CE2DEC93C532E673D02EA383DFA7FA8BDEA29623C50521E3D08ABBB3BB5F9DE3D71A40A3EA68FD03D21AA7F3C91EDDD3D2B6D21BDC2C2B7BDA1EE803D084CE43C0AAE8E3CF433463C4D3C19BD42B4423D2E9141BCFE02E63D1FC1E23D500682BC2D3FD6BDFB2D25BD3BC6103E54F1943D5B28AF3C42E19BBDE00070BD0773DBBC499651BDE67612BD53E423BDDA40013DAB7C8BBD604803BED68BF9BCCCCFABBBD620523EBA93313E967212BD484BF9BD92A09EBDE88457BD8D10933CE0CA81BDA5BD66BD4C81ABBC34637ABD01A6FABDDB119BBDEFF0E63D36C7AC3D97E1A0BC02FCB1BD9D5B85BD30979BB997BE913CDC3BC83CFF2906BC38519FBD6336C03CC31F513DB5E6E63B304CFB3DB3E2C73DD5BA40BD6A3B77BD169CBFBDBD01ABBDC9CB913C771A85BDFED36C3D958933BD3AE03AB92FAE19BCA62E923C6675083E8E15513CE88349BB66236CBCB436353D7F4C94BD053388BDC35F77BDB4893ABD4DA30EBDE6C784BC943AB7BC3ECF1E3DE978163D30EA233CDCF13E3C784A6F3C8F3106BDF6EF943C74C61EBD3C7A95BD3FF888BD426D0FBD549CF4BCA2B5D6BBF835F6BC20F4BE3B5DDB45BD22FEA43C8F7A93BCD9C579BD0AE5C43C66AEF9BB475C81BDDA655CBD22CBFB3C3DA5C03C1F233F3D3F1E6FBC12EC263D9CC7D73CCD014F3C5C99D6BC51B3743DD3C1E93BEDE3E5BC63EE30BC25D2793D7B341F3DB1ED6BBCAD86793D29A5B63C536942BDCFE599BDBE69053D7404703DF97C31BD51B8D73CE4DFC83B3F5EEABC679C1EBDF6C8363BA219883B433C203DAB9A8B3C1141BB3C756F383DF558953C3AE0F93C38057EBCD53A6D3D80C5083D4C13803DDD3CA43DE39FADBC02E14C3D58DD8FBC1333653D557B403D9C9819BDA03584BBECF83639E867CF3B4B2A0A3D5E92603D9CB8ADBC811FA9BDF41FADBCF1D6063DDB2E72BB86F1813D9C8D603D147F163D4F91A23CF8D62FBDE218B83DA4824ABC5E3A993D294B0B3C4210153DA4967BBD5F9B49BD3198AABCC458F7BC9CB3C4BCB956903D2BB973BCABD3433C8B6BAEBD411B613CA1AEBEBC691C70BDC1ECC53BDB861DBDB8AD753D3825A7BD53FA9DBDA6F9B8BD2EE88E3CDFA555BCC32F9ABDE6C7633B38E576BDBD64AABD2239D8BD77DDE4BDD58C1BBD8D308CBD14D94F3D050F7F3D3A0253BDF5FAAEBD446CDDBC084796BD6DB74E3C9AB322BDF89EA5BD060E01BE00E9223AB3E5D7BC70EDD9BC7C42943C31E954BDAB20A6BD3C59283DC12545BDA9173B3D175A493DB26C61BD9A4D5EBDBC7AD9BCA7ECC23C3AF378BCCBD0C53A36F7083EDFD4003E2A3B3A3DCBDF84BD6837953B48D7243B9E4ABD3DCF2D13BD72E44CBD0F3690BC463B5C3C9D235A3D1E76503C9B9AB5BC181AF13D6564B53D3E24D5B926768DBD731B5C3DBA48AA3D3340783DC6F602BDABF58EBB9C5320BDFD22C43D967F0D3EDB7C943DCE99893C5C9CAE3DC00E473D52FA083DD44FB4BC0EA55B3DA8377E3CB59441BDC02D6ABDAB5BAD3C2C8AA73C3B965ABD44B89B3DBC10CA3D9DDAA43D4688D83C3EBB14BD898AFA3CB147A73DD0D4873D316F1DBD4A07D2BCA793433DA9BF393DAB56113DE68F25BD44DCF2BC2E8C77BDB75B30BD8DA58E3D7E9925BD75260DBD0E9178BCD4887ABD955B503BDC55AFBCCF6D9F3C5FE882BDFBD0443AFD2397BD932B103DAFB0723D91F511BDBCA7403B9E972BBD7AF870BD30D24BBD528E36BDD1468E3B77AE8DBC494B86BBD3B863BDAD533BBD7E6680BDB3C85CBDC9C36A3D113BB43C332090BDE1B34BBC89DBBE3B980C153D4788833D44E2843C05954A3D2D40D7BC133351BBE84B34BDDA547F3CEB5D743DC121BB3CFFAFD33C83218CBD18F21ABDB86630BCE23C283C2778F0BD1C4388BDB1F3103B9B572DBD2B8ED33C41C9B8BBF86938BC1800613D4CA09A3DF413BC3D44FDE63D5FCDB93DF9A5F23D19C1953DBE257ABD812FEC3C9784873C79D4F0BCE73691BC711F6EBCFFB5DBBC5B38CA3C6D52883D8467CA3D65212A3D0DA304BE01610ABDA68E93BB0A00D13DCB5BFE3C3FA9603D509C843DC4AAF73C2B69FBBC7483A2BC493F123D431D483D803121BD9F58C9BD4E3D0ABE089636BD9620143E3747093DC555B43DCD03153DF105AE3BEEA31ABDE58BD03C00603FBDBD8195BDA4D277BD528C0FBDA4536D3D6BE941BD6082103C51A8CE3DCE6FC33AA9A2073DEBAE0E3C097953BDF6F06A3CA0003D3D648F98BD8643EABC7EFBB43A59FFCE3D7ABA153E72B58FBC0052ECBC784B013DBDCDCDBDC55A0BBE05BA3CBDBD723DBD3446AB3CF34A6D3DEEA57D3D0FF054BDF95ACF3C884EC73D447F963DE187553D23055F3DAEF7843D7CE88E3CA3842EBC29A338BD366518BDC8AF0CBD9FCA933D55955D3CA18A163B916803BE05BE8ABD0D0F9ABCA9DEB9BCD45D963DCFAA82BD8D9B38BC47F156BB5E8B87BD43463F3D30CFC3BC9FD95F3DB80DE33D97A7053E51F4F1BB9F36E2BC3A62423BC7D1AFBC105DABBB3D068EBC25A70E3DBF03273DD40688BD4BE0533DBE6C2B3C01445CBD68FF983DADB6F73D933D1E3DD5286ABCABA8DABD560204BEB61F4DBBD635963D14BF053C99B4683D01C5843C7DEE58BC1DE4B2B993CE0C3D005752BDA9865D3DA48D773DF794553D6D5E083E9BE4CA3D7CAF1A3D4C4FC23D9D83203DD996123D637C653DBDB224BD07C70B3BDED78D3D246C97BDFD3149BDAC2D613D3C77943D596D993DF4EF7A3D46F8573D1D8730BDDEE476BDCBCE93BD011C873D796B643D0B14E13CFF879BBC6D4D5F3DBE0F0BBDA2EA993C7EAC2CBDFF1597BDFE7164BDA83449BD59FCBCBDEC864A3C4437BFBCD6DF023D1106373DD19E9FBC9731D93CEA47C93BA031233D5CE95DBDFF2B75BC383B03BD3434603D036792BDC27C47BDD59848BAAC33623D92A9243D068999BDBCFD6EBD0C107B3D6FF6EF3AB9A090BD27710CBDC89F833CC82232B997030ABD70D51DBDBB1365BD71AE2BBD56E53FBB6DCE9A3C9CF42FBD83C4A4BC180D81BD9187453D7FFD8C3D933F803DB85D0C3DD083ED3C2619663D3ED24B3D42779EBD3C4DE3BC3836A1BD086AACBD1FA31FBC0319FCBC302C5DBD3BCF1D3C291DBBBB9523133BB0ABC4BCC52B43BD467D85BCE28979BD4684E8BC57B7483DF4EC603CA2AC4E3D8411A6BCFFD384BD4125F73BC12D13BD000D053CD8E28ABD834A5B3D67B587BDAF4B683D43413C3D0A359A3D7C63893D703C1B3D8AF03C3DF8AAB83B9DE815BD057F94BD0D09653D6B27BCBC5DAB50BC8E3119BDAADA5CBC91610BBD4B7E85BDD8F1553D4E57DD3A169B6CBCB6C786BDC8D72A3BBDE699BDF41097BC0F97E5BCF697A1BD9D4BAEBD9C91B13CDEF0093EAB14F43D02A671BDB58C95BCD917CFBD8AA301BE643364BDF6EF7B3D1AB8DABC512133BBD657653DE970FB3BAD788D3D6112A03D498EED3DA121393D5A9553BDF4358CBD7900F1BC758B363DF472063D187A7C3CDC207EBD87973DBD115A9D3DA16A81BC8506FEBDBE28D0BDCEEE02BD1DD5303D9EB2D33C65988E3C99F2D7BC17FEFD3C5234BDBCC076343DE924DD3C8D8D6F3DFA87F93D2CB2AD3DF33FACBD43CF43BD26545DBDA7B4613DB668BE3C9756B83D9B46D5BB8BCEDEBC4BC621BCAB3B923B9B18353DEEFD8C3D7015C63DD0F6A73D117CF53BFF2B5DBCCE1540BDC48D963AD96E40BD79B9213D70629D3D8EF8A43D1E749BBD3B6F4F3D1C1559BD6115A6BB090DA43D5C24283D98F28BBCE5CA1C3D1AE6B7BD513E413DC43D943D833B9E3C28D30B3D280A98BC814B60BDB2C624BD43E552BC5A7B88BDBC4384BDA6252ABB14E65ABDF472DCBCF6C4C13C0C1ABFBC93AE603D49871ABDA9AA4FBD7717E7BCED2788BDD133EB3CE6145A3DD0414ABD0F1F18BDE18C573D86DC88BD9359433BCD939ABDAD5AB5BD3CCBD6BC529583BDF76DD53CF9B4F9BCD16CF3BB260A3ABD291E8E3CB4E75D3DB140BABC9AC361BDEE5FA5BD67A86F3D4004AC3C996B993C78B19D390BAFC73C9E3E653C1356C03C4ACF053D5AD5F5BA7AD54A3DBB01043D0BD65EBCFD4D23BDB122FD3B066CAA3D0487AC3D8A29723A6B330A3BE7F1153D6F54D53C3BB47E3DAE4BC43C3429303C3799933BA69BA2BDBB0C16BD6AFB96BBE1ED5FBDBF5F98BDA15CF2BCB71DB3BDAD6B14BE3AE480BDAD4C5ABB5E3D683A4E63403DB1A326BDD1C6A23C898884BDBCF9A53A6A2D03BC8C194E3DD5E1B43D146A0F3D8CF9DCBC6EC7993CB48F3ABC92ACF8BCDA6B9EBD3284A73C719C163DC28B453DA91A0DBD67C9983DC50F003D24573E3D68301D3D6132883D269D473DA39AA53D583533BD680C5E3D62BD81BDE3E780BD674583BD422B193DEAE37A3DE8DE10BDDD41C0BBD739FF3D8066103D6083A73DE35FB93C884F003E821CC13D9A0A2A3DDDED433C60A7A73C4E32E53B07161E3C548C29BB1D5E85BCCAC8A0BB5C53B23DC498A7BD9FF4CABDEA406E3D86DB573DA44E9E3D379A463D28972E3CAB55F43C6B48D03C223756BD897C24BDEEEC75BD970766BD9E332C3D6B5A1BBEABB71EBEB2E38DBAD64B1D3D94A5933DF773F53DEF0B223DD7A6063D04165B3A9A6057BC59EEBD3B4AEBE93C4E17643C14203E3D38F256BD8B0E50BDAD3E343D27D60BBDDBAE723D463DEC3D443E1CBD774B2EBD4A0797BCDCD4463C344ED63C4809DABB556F5C3CEB5F79BD512E52BC584F1FBDEAED313D8CDA0ABCCEC9DFBC78A85BBA3760253CFDE4FEBC1D6644BC003940BC192E083D7EDE94BC6A9AB4BD8B078FBDB278B8BBE7686C3CE27BBA3DEF10B7BCCE95FC3C7953C7BDF185DFBD6BE0C0BC1B0B6EBD727906BDD5663CBBA7BD88BDF7CB633D813506BDD7FA513DADD9C3BCE13C99BD0E23DABD32FF45BD8626A9BD4DF0113DFB9F95BDCC2B00BD346952BD670868BDF0EEB9BC60FF653D2195933D0294443D8D90663D8CEBA1BBB658F7BC6E56CABC76C4523D7106AEBC31A293BD5A66343D5B26B03B59D8083A0162023CB2A7833D3B937E3BCD83CF3D3E53EE3DC0A7263D28E4B63D70036C3DE4ED813D25EADDBC8D365FBD96C51DBD3F417DBD51AB30BC87DB633D1FD3633D6595243D8365E8BB1B6E4CBCBEAF0A3DA624E63C729FA3BC1A87FEBCEA06763C79B680BC9FDF81BD45D13FBDA62B373DB8703D3D8B2036BDD17329BD5F2C8FBD06AF73BD1D7E153D31E1B2BD7D37E13C24169ABD91F663BD4E7C08BD996D08BC5C6FCBBCD2133FBD77EC1ABD26C169BDAF6AAABDD9D27FBD40B68C3D287FC2BB7A7A65BCF550AF3DEA5A643DC732B03DBC7B7EBD3B77A5BD61C882BD9D3858BDFB038EBC691255BBFD69983CB79E77BDE058C43C648ACABDED646BBC7603743D189A0D3DB4989C3D4BF1513DB9B83E3D62EDB33AF8C32A3D7BCD20BCAA3298BD1FB2C9BCD5CB38BDF9AC7B3CAD7C72BD19273B3DFDBB9CBCE08FE93CA26712BD2742023EEC80A73CC7EDD53C3F19AFBD707AE8BDA09F8ABC0E3DC8BD07C00E3DDE79EC3CBBB54B3C3910DB3CE041D7BB7BCFA7BD51D7E7BD5C8FA3BCD2D6D8BBB1F8B63CF483A6BD960462BDE6CF83BDBE13603D5F1F1E3EA57D703E4990103E4AE74DBD18C788BD2021F8BD955BACBD2B764FBDFCAC73BDA48026BD9D6D9DBC8739123D92D7DABBC1C6EF3D73918C3D90BB773DF0DC80BD568338BD2A2F3B3D5FF11C3C21F9483D2C4BCC3C9FF6B7BDA4E88CBC66588EBC3D0D49BD02ECB4BD0F26C1BD78FF85BD55D64FBDD95B143D30B3383CD490C83DB7B0A53DFACF71BC58D874BD715DAFBDBDB27ABCA1F41BBCF634CF3B95B0EDBCC830B1BD244926BEE66BDDBD018AA43CCD07263DC253C13D7C0B2C3DE66693BC795EB1BD4D14EFBB4D297FBD2E0D653D32B0BE3DAD626F3C16D9653DD5B2903D2B08873AE1D5233CA1DE5C3D9FABC53C3C50A4BD991656BD9DD580BDA1760A3DD6517ABCAA7D2D3D0123943DEE8EE1BC7AA8493DA753163DE471903CC6ABC73C5F08503DCD76443D0828B33A99824CBCE01CCA3C8BB88A3C32E3843C0F31123C810A6FBDCBBE11BDFF135DBD3FBC833DD95B613AAAB4E2BB8F33B03CE540C23C91FEA0BD7812D93C5F5EF6BCC74F083B397B6DBD7282C5BCB1C7E8BA478CC43C54A21EBC4BE5BDBDDDECC0BD713DA8BDE4B177BD86D6A0BCA109C2BD33779DBC4AA32FBC39D73EBD75DE413D8A1CE5BCDBEA9DBD7FED53BD0978DFBBBB607DBD02B5FF3B1173773D1348B1BB7C70DCBC697E6D3DDBA9323DB0861D3D73326BBB1324BCBBD03683BD330105BB1427763D867815BCE17797BD5B5E303D4037893D85ED563D84E9ACBC5091D4BB157C003B976115BD326D9FBCE7C9493DCBF9F6BA1E64643DC61F59BDC202BBBC495A0B3C776B583C3D050D3EB69B053EA722A73CCFF1873D057B493DF6EE6BBD3CDA59BC49437F3DD59F5CBDA2A179BC77857DBD0BCF883C5F809DBCCAB68E3A9876773D89FB6E3D7848EA3AF9AE6A3D17E4633CAF6A36BCCBD85A3C95A935BD49E6FABC99E5333D53755BBC10F341BDEB5E53BCEA32713CCD011CBC2374F13D150F093E3477D43C338A2D3DDEC738BD584FF23C99CA9CBD3461853D11E83EBD1E4B00BC3C1DFE39C87CEBBA5A1F3FBD3C5369BDC3EE8CBCC815BE3D51A3D53D24F2893DD90457BDC054AC3C80456A3DE68BDFBCE42DA53C6D6900BDCC71EF3C566AB0BC23C0EFBDB7B123BEE1B614BE14E0133CD7549B3DC31C3E3D8670B53C35FC49BAF01F32BD8AFE4BBC78A0563D10CEEE3D5DB792BCED5D4A3C1A03F9BD9D7E0BBE593056BD882144BCEBAE7F3D3761B73D5B1E65BC182D8EBC5DEAFEBC03DC4EBC4C18933DC623FE3D0FF727BDEADAC73C5FF7E5BD1445DABDB58D983D190BC73C1DC09FBC5485C63CC6599DBC896B96BDF0723DBD1DFB41BD5A63843C844722BC3911B2BC511DBB3DAD651CBDD56CAF3C3749C13D2F453DBC82E483BDA806A23B782D683DBDA386BC7CE756BC0BF6BE3C84A88D3CCBF4443D6792E13D053C083E9448A03C9FF3953C40A9913DB709703CD17A30BA5AAE3B3D1FF8153DDE96A33C0A19733D98B88EBD0DBA863C98187B3D9129483DE35F283D20776B3D4806F6BC46EAFBBA06C75A3D12344CBD8E422EBD23FFCF3C2175DDBC7377C23A8550A2BD044F243DA7E979BD3D84393CCDB17EBD4DD78EBDC2AA143D9E178DBDFD6334BD4EB6E3BC4FB43A3D47A95C3CF4E0D43CC40E22BD2A3509BDCE8C373D34CEC83C0C6CC33C84425CBDF8A08EBDF304A83B08D76FBD9C261C3D38683D3D0EE91DBDE47861BD7453763D4CBC38BDD8E982BDEAF470BD7223D63BD54DFD3B09F1273D57FE593DBD40C63CACA1A93B7B6F6A3D17FD13BD6A509BBCC01B5B3DA83AFEBC6837003D9C65073C192D963CE52B8DBCC92E50BDE7A4A33D9C3ED53D6806AEBCE05688B906E0043CA643FE3C177455BC1C8511BD6A4B473DE0832FBD06606A3D889F34BC8BB82A3D025C2C3DB9B0A33CED677D3D0E60663C9643883DD4E0E03C80D554BD9BE4463B41D690BD4D6F003DCB59B6BC825E283CEE9608BDE2E93BBC0588BBBC7D7E303D473B933DCD87363DBD87DA3D4CE227BD36660BBD5A0A18BDB62F143D9A5B6E3C5E0D40BD982CB8B9CBD948BD9C4AC43C0E261C3DDAD7293DB01B153C78EEF43D63A4A93D466046BD4CACB33C4FDB43BD22480CBDB1136E3DF45E97BD0A3ABCBC6AEECF3C2832D63C93BEABBCC0D185BD78886FBDCF0A66BDBC0FF2BB86C2EABB61D8BC3CD1B28A3DBAE380BD07862ABD421A7EBD0D4B073D2EE79D3C6300F5BDE575453B000532BAAF2D87BD4283A83D8FDF5C3D55412A3D671C8D3D0BB935BDE2B2C7BC283C0F3DA07B94BD74149DBDA08596BCA4AA06BDC92236BC6078F9BC7EA9313E6B3D423D357CA2BB5144A0BDFE571EBED51D8DBD9F7537BD4CF12F3DC08B7D3DECE2E53CECBFA23D69D1FBBCEE68253D3805A43D13153D3D0D786F3D6C9A52BCB8A0ACBCE93413BE536496BDDF960BBDAB2BBEBBACE03739A5CD53BDFEA9E83CF5FBF33DC5AA4F3D69EB603D8506EC3CD8FB153D854C083C48A8E23D572E4B3DFB179F3D3988BA3D4207743DDBB666BDF5D2BD3C1F52D4BCDACEF03DB856243D047C443D42BBC7BC7BBACA3D518ACF3D4C45DC3DC2EF383BD003D43D9CC8A5BCEFDA94BD4AD1213D26776E3C52BBAABC92B625BD3FD8913CEF392ABD143078BDF39115BD2CA6B3BD00417F3D3997BBBCB81B05BA763B88BD3BEE8ABCE9F5EDBC836AFD3CC0D40FBD92E43D3C0476A63C4EC78ABB19F832BDA7A0BDBDA8585BBD5D5D11BC08760DBD59AA2F3D901FDEBCF85B1BBC51BB83BB58BB8CBD9A434F3D606721BD6BBC74BDB961E53B8DD42FBD65488B3C7CE70BBDF62F04BBEF768FBC786F3E3DD430453D6CB2823DA8D7373CF159483D695E62BD728736BDE665293D3F919B3CFEDFBC3C0CAB343D903E463DE8F6163DABF5BCBC87FD9DBC9FB2963CA8857E3DAC0007BBF3BC92BC56AB2F3DCECB493D2477A3BBAB1FD2BC2E9292BD4FB27CBA9400753CC2DD55BD8CA375BDF2B3A5BD67FA5D3D7D10903DC7A3973D9C308A3DCDE94C3A056EFB3CB6A9A33CAAD20BBD734181BD4BDAAC3B9ECD0ABD1838BE3C356EB7BC777DC9BCEE1A55BB02A4E33B39643B3D98843C3DD608A9BC4132E73C57433ABDE44F663D17AA6B3D57BC103E3B6B1B3EE0465C3CF03B8B3D763450BDC1D82D3CBD47CDBCCD7B4A3BB8736ABD24B41E3BF6B8C2BD1037CC3A197481BBB16007BBD168593DAC4FA9BD855FDFBD50B890BD600564BDBCC724BDF467853CE3BA1F3B6AA3523D4B8171BCF732FCBCA1781E3D82CBF23BF60086BD5AB08FBD346457BD4BF4DEBDC187F7BD8055F3BDFF1DAEBD42168BBC2934E53CF2279CBD717D9DBDB90508BD90479DBC669EE83D5C051F3E098D4B3E290E113DB0E2063C8A8C7A3D4D98C7BD56F892BA3AC5173D4525D23C28DD973CC5ECA8BD6BA49BBD6BA608BDBA71193ED5925F3D233506BCEE42983D0AEF943DD4F578BD963B96BDE067133D51BFA43C434450BD60C9953DF5E8A1BD8BBDB8BD8CC60CBE6CAD20BD9024C9BD3FF694BD650C39BD419D163D269B143C2E25583D097A5BBD0A2C8B3DC5AF503DB7B6F73B53332E3D5C5B23BEF1B981BE180589BEC7F98ABE6180F9BC6380DE3BD5D53DBCE548733DF09F743C71A356BD8D018BBC374A7CBCC04D7F3D6740CA3D89D6763DC4A8A2BDFA9A54BDA8E7CEBCE026CDBC6C58533DC4A2EABC4804963C64F792BD9DD01E3D4B6337BD311BD73AF4D931BD1B2EC33D823A693D30860C3E07188E3D0115843DA51A7E3C15C7683CA3309B3C9AFFC9BBCDF357BC0F4BAB3CE927B7BC21A4D2BC201B76BD3C4634BD06CD293DDB36DF3D60F1F33D9875AA3D9A20923C796525BD14D89FBD4EF4893DAAC634BDFCB80A3B5EE5003D0F78B13C4FAFE2BC789D6ABD2C1F833DB855293C8C7CA03DB7A4203D3306AC3C7755153C874E4BBCC9E918BD376D3E3CFF6F933D35213D3DFC7A823D8EC4863D28D05F3D803B27BD2C591EBDFB42813A8862FFBCAACF9DBCC6B6D5BCE9447E3DF49985BBE03E8D3DE5B367BD16B892BDD3F5133C925B5D3CFB50F2BC960807BD09A8053DDF90AE3CC5E036BCECCEE13C71D93ABD66313F3D20B10EBD997FBCBC0E59E73C4F4F2F3D19C806BBA83C6FBD1B2995BCBE0E63BD99615DBD101086BAD452703D44A6473D1D550D3C6C37CE3ACF3F3FBCA0B35BBDA8B3EA3C91C2203D3556583D1097CCB802D18DBD12A6B9BDDFE1D5BCA5EAB1BD15F6C13C949879BD3C4198BD24B871BD88FB5E3D7FE6483D21EE0E3CAC13A0BBD721773DCE0D0C3D0C73753B69B160BD53E9193D6DDFBD3DF0BF49BD62C6C73CF65FA8BD1563C2BC22F0BFBCA032DB3BECECE53C1B4537BD78CA013D15AA593C83BD13BC8730B7BB9B751D3E704CDA3CD506283DC282F33D604875BD3ADB243DD0B0653D89AE083D89134FBC725625BDFA21B13CB0E2883D92F89C3B598F673CD0062839D49CACBD4AA9DC3D1E8D3D3DA156B4BD7921E9BD786F753D95091B3E19F5EC3D3C080BBC85377DBC3BA7813C65F7A2BC095269BDC89DFEBCE38FFBBC1F3E163D4FA59D3D93D5ACBDB0ABF3BDDC3B0ABD83FAF53DADF96E3D38EFAFBB46045BBDDBC64EBD617F6FBD0D1EC2BD1D8C123D1F1D0B3E569A053EA08B71BCB13CB3BDF16B033D2AD216BD47868FBD04F4563AC7177ABB90D4E2BC462831BDDD1F08BEFA70A63A3660043D4E1E1A3EEE35253E34EA35BDCF7668BD5839ADBA974106BD928A853C6A629EBC0A28213CA460ABBC4023C8BB2061E2BCBCD58EBD5CBE963DEC559B3DE7A32C3E602B00BDDB79E23C100BA43C53ADDBBAE4730EBDED7F53BD7DAE65BD617362BD97DB283D3DB2BABD053E3CBDF6D6B43C578D2C3D69C0C83C04510F3E3C28983DC6893A3DD23C88BDF946AD3B92FA55BC2A4E803D82D20ABC951C3CBD5A3765BC33DFB1BD60ED83BC71A2913CEFA975BD7113D6BC38BB0C3A2755EDBCFA2F19BD3D184A3D9A77EF3C0CD2CBBC933D163CDB6247BC5FDE56BDBAD4B93C18D97EBDAA9D4BBC5828C63C9DF2A4BD794335BCD7ED583D9DACD43C0057EEBCCFC2243C72C68BBDC168B53C190D953D0BFC943D52341C3C2DC2153D2C42C4B91E5302BCCE87463C57E700BD6819233D5DF33C3D8B4B0ABC72BCB6BB9E2620BDE944A23C8F13203D1501A13D3FB267BDA3CC58BDFEE7EB3B156E893DF18AEF3B9450B03C99CA943C084C613C5054973DB797893DA0B7F9BCF67C03BDA99F37BDA878CCBBCEC1A73B3EBB5E3DD782A8BD5677F03C58BA82BDCDB71DBC7E00273C2295693D9C7280BD8FBD55BD0ED4353C3A173F3D4101CFBC16F3AF3BFC83BBBD213031BE9C0CB7BD69EBF1BC73810F3EB82DFC3D1A149D3D69069E3C321A04BE97DAF6BD260CE83BEFDBF83C381D67BD7C78183C5F99D8BDF932E4BDBAF4A5BCC40B6D3D0135843D73481DBDF84014BD937C0CBEC29D8EBD70986BBD065BB4BC899B40BD118E2A3D036ACCBD3F126BBD2B333F3DC3FDB6BC8B6358BCE84A923D700982BD8BAF1E3C3290AB3D54FC9BBC3FCA9CBCC068BFBC8CEA55BDB2B0F93B25BB71BD3EF72CBDEE3B77BC06A2B93D724D9C3DF010333E7B7DEB3C3742BF3DFE92B03DC67327BD389BDF3C22B4ECBC34DD573C9BB7BFBC920694BD1EB87FBC72B9DCBCE63D013E4893323E9804563C4CEAEFBC51BAC6BD9EA5BDBD48FAD3BD8577D8BB4470CE3C6327953D94934F3C4A656FBD7B9DC3BDF98C933B6393B83DE853C4BDED79BDBD2B2DD43CEC1F7FBDB03BDABD01B9D3BDB47585BDF8E538BDC9AF07BD42D980BDC76DBCBD6B201FBD022181BD02B7DA3CF18DD6BD00F9083BB6B5733CC85CC1BD9E0E70BD3B2F9A3C756327BD8E059B3D88564F3B483686BCD7C5133C16B22CBDFB2803BD835530BD324C93BD068CCC3CFC0F3C3CFF39A0BD8A6698BA7551FABCFBC369BDE0AFA8BC46FA10BDA647153D6C0E39BD0836FBBC811290BC6B2FFD3C19E710BDB30C743D62216BBD3F34A2BD2E3B003CF5F31BBDD469773D26802A3DBB8FC4BCAEB0B9BB91DA9EBCEBC3A83BBF6B77BB738F0C3C6AE04CBDCD46CDBDAA2948BD33C1013D45E8AA3C4A9BC1BC504D76B98DD90E3CB5137D3D1F6C5ABD205799BCC193BDBB37BABBBB35AF9DBC56FC7D3DB71488BC1EB3033D2AEC0EBC5B7FB53DD07602BD5D2A8DBBC9118B3DF6F83A3CFDF0BBBDA58E933C032886BDC30A14BD709F1C3B8476B4BC4381E83C6DB853BD5B18A0BD9A31C4BC29663DBB3736D83C5B6882BD53E910BDAD738CBD39C7A3BD8EC8ACBD1439A4BDA5AB7FBD8BFA423DE61DD93BC031F83CEA358CBC588013BE5DC63FBD4341703B0CBDAEBD47A144BDABC8D43CB69D8FBD0B45993DB00AA23C622D423DEA8C043E4651B33CD626E73D30A59EBD2E7302BDBBA07FBD055B883C9C4DEDBCFD87C6BD6E1F21BC6792AD3D9C2D823D86DCADBCF6C60C3DE5AEFA3CB3AAA33C5E988F3DE9401D3D15210B3DE662B6BC425EA8BB44E01BBC60BC203B07F61DBC11B48C3D1EB6C63D81DBC0BB2C1EADBD5832B73C401E663E4AA51E3EEA2BFB3D1362393CE58EFBBBC1431A3D0E6165BD548137BD8AF249BBD20C42BB216EECBDE2C7D0BD6E0D13BE977EDDBDE6DA083E3D6AA53D41B132BD491C26BC0E00F3BD24D33A3D8920173DA4F29FBCAAFAD2BBC875CDBDC9542ABE80B309BE62523FBDDB086CBDC050BBBDD0AAB8BDC920A8BD5D7804BE65F304BEA0BE01BBC45EB5BD11E9CC3C6E1D7C3C88E325BD76F9243C091C373DD0BED2BC1B1D95BD6BDD05BEAAB18CBDA43E9EBB00DFDDBA281D3BBDEF61783D30281B3DD74F1D3DC776A83C8A57DB3DD354873D6FF089BB2696D6BDF40EA3BD54646F3C8CE3B23CDAC1263DB860203E5E0F243E8E9C353CF9AFABBD2C0C22BD875DEBBC74104A3ED47B813DDF0579BDD6FC31BDEE680FBD00A30C3D8795F53D2D03F1BAF976BD3D0BAA3E3D2956653D2E954BBD45B81B3DDB45E5B9FB7BDC3D75D6943DE61A2D3E5BAB0E3CC4CB663D618F433D17ACCA3DB8F3CC3D34A8BE3C244F4E3DF2EF3E3C13FAC1BD1093373CC62880BD40B0A43D29071B3ED07FA43DCC459B3D6A79CF3C670C293DBB4EF33DDD40F33BD52A413D7A9EABBDB5FD46BC02B1C0BD9BD09CBC775C433C7B6088BDB0E79439C421E2BCB6116B3DBDD5C23B52C1833DBBF089BD80152DBD25ED1BBBCB7B42BD6C7960BDDBDA67BDD11EAF3C9C892D3AE870B8BC69A88D3CC6E773BD5D0E97BD1B172BBD29D52D3D35A09EBD27D471BD8BE164BC109CF7B7660B093C1BE4BCBB42698FBDC9BAF7BC7046173D5D26AE3BA8F2033DBFAC3D3DF666073D630C12BDD3781CBD310D9FBC0E3426BCC0005ABC7348A9BC7670293BC0781B3DD82365BDD586EB3C57B5A0BDA9D08ABBA4ABA3BD359A6B3D9B3F9EBDE4A18BBDD3085CBC8B982BBC5FE3063D0EB3FA3B861192BD06C369BD500E2C3DC7CFACBD1F46703D83695CBC899DE33C6BED613DF3FD8C3D5FE4753C2B6C8F3C16D10DBD56E7D23B051B453D40F3CEB6ED8981BD9DFF82BD94AB073DC642AB3C81BFC6BC72402DBD251415BD016F633D596AD0BD698B4CBD11EC193D528B763D2C4E0CBD5C0799BD1C3F1F3C4C6433BC40C475BB4F0C83BD7F4B253DD395A23CA945A73B8DA8833D15809A3DD1B059BCA264013BC3C458BD3F3684BD381A22BDF674483B2FBA53BDB376193D4FBAABBBAC2333BDF67B96BBE53FC8BC5CC4A43CA76B773D9D1CE63CC833813C9963B2BD8570513DB05988BB321712BB9CF7D9BB056F94BDECBDB9BDBDA008BE7D4F1BBEC22E63BDB0B411BD7FA7A03CD710D2BD17BFEDBCEBBCEFBD2862CFBC7B723F3DE20893BD208483BD929E6BBD57BD9CBDB5F7E9BD8BB695BC5F4DC9BCF5D1AE3DBDB1B3BD30D91BBE47CC12BE3EE8E8BD57727CBD9677D3B99CE5003D0F7C963C3DBCE13CEFD00C3D7F49A0BC6F18A93DBAFF023D39F8E73C3CFB1DBED4A04CBE819503BE664D97BD453AB83D450B8D3CBF01ED3C692B15BDAA717E3BA5D911BD5FDE01BD853C863D55B1133E1AFB933C80375ABD7BB206BD14AE163D249FE2BC342E803C01748D3B15D47C3D65A25E3D77815BBDA447CEBC1A4DEB3DB719023D70CF07BD011240BD7C6C9C3DA74EE83D2558E63DFD15423D54060B3BC7D6F6BB3850643DA1038EBD88B12D3D03F427BDC21B383C82304F3D61439BBD42A8D5BCDC16873DEB0ADE3DA48FD43DA0C316BDD9427A3D71EAF8BC6EF24B3BD23546BD68BA2EBAF77CD5BD0083BCBD328A9FBD501C5A3CE40F433B71F08CBD1677AFBB8E69763DCD6595BDCD60683D5351483DDCDF48BB116231BD87E8B93C05B8A43C006B30BDE9607BBD50DF8FBD7CEB37BDB6C6B7BAED99883CE3BB36BC262F5F3DA02A5D3C2A85643C003381BD66B346BDECA8A33C441EFF3B222217BD0AD39EBDD947C7BDF33CC7BC76F697BD30611FBDB00A24BD6FD3C2BDE73AB23C7A8427BD57AAC8BD1B25BFBD0AB0ADBD4BC878BDC99629BDDB0789BC82F683BDC4D3FCBDFE77D6BD5CB669BD723C3A3D44AEF1BC9B10C5BD0AE66BBD5157A3BD3B858EBCC3D707BD325847BD651D203C374468BD4DC9B03B43FD8B3CBB38413DD9A7A2BC71148B3C24E7DD3DA21AECBC345371BDBCEA17BDD015ACBDEF0192BD365F7CBD22AAC6BD0CC2E5BD041CF8BD944E8BBEEA4644BE5BC9CEBDE66D8A3D8EEE263ED5F94C3C7A2A74BD93382A3DB951913C7049FDBB977CC3BD05B7C4BD9FFCBBBD77DABCBD9C0188BD45DCB8BDDC8DAC3B257935BDB9506E3D0EF5513C7959563DB8B5A4BDF075C9BDBB42CFBD442E83BDAD0A5EBDA0C930BDBF85C13C3B6188BD5E71BABDCBAC06BECE5602BEBA9BE0BD1201953C770CA33C80182ABD0B1DE9BC5AA997BC10E3243D3A50ACBB38AB723D29D6803DB407A23D9E15563C04A109BE8377F3BD6C8CE9BD065F49BD2684B6BD61B704BDDFB05EBD017E1FBDD616203EC966B33D6A21103E5AC9CA3D4339BB3DD35C013BD21E993C3FC89E3DA2CCB93C6B0415BD52E5F73CFE6C0BBD98E99BBD4FC63E3D7DAECC3D47FDAF3D5813273DCA4D293E1227A53D14B3833CF1C0623DF06A67BA866B0C3DC43C49BD90E00CBD2F19993B442CE4BCF38748BD5EB11DBD697A85BC650385BD4ADEE13D16D2EA3C4AEA71BD1ECA2CBCBF7FE2BC7C7FBEBA83634ABC0B60B2BC0C138ABCA24BA23CD66FE3BD0615B9BD24968EBC6DF5B4BDD664543C16DB2F3DDD824B3D7CCFEBBC1D8CA3BD7D800DBD7DDF84BD00790D3BE3A8EABBCC7C86BC8ADD0C3D6E1402BE3D05C3BDBE87B2BCE420E7BDD98994BD69DEC23CD884B83D6C5D8DBC42F7D6BBD4AB6D3C5EA144BDFE621A3C8CE6CFBBAD2FA0BDBC6B4ABD7EC023BC11924FBD6894D3BC41A10ABCE984B9BD7CA171BD5DD7493C61AE3EBD5AF393BD898F94BCF639B1BDB06615BD40EA0CBD2DA5E1BD266BFBBD8B4B13BED20C1DBE50B660BDC136A7BD1F3309BE0A899EBD289FB93C7B150E3DB35EA9BCEF3E06BB63026BBD930D213DB7E6BCBC278C7C3B3CDF82BCCC1BC53C6591803CD9C19BBCCC665EBC544E47BB67D073BDAE3EEDBB615767BDF335563D7373083DD2FC34BC1151353D883DB539776D733D7C7E903CFBA47F3D569C823DC3C5813CD91D0FBDD3F6C6BC7DB8543D43E9093DB5C2D7BC120F45BDC111673D7A4222BD9EA207BE31F4A5BD40C199BDCD03A2BDD6DF52BDA623273DEEF25DBC21132B3DC50B33BD7F9E663D25F35B3DFEF47A3D6636D9BDCEF400BEFB149DBDE49E3EBD4C4FDF3D5700083E525E173EA413E13DB85EBFBAE35CAABBF88386BC7ADE553D7B97713D697F0DBDCDBECDBDABB864BDAEE2A1BDDEA2123E7A52513EE50E1A3EC51138BD783B47BD50F933BC77E03EBD154DBCBCE62B4B3C0555573D2DF6393DE30AD1BDF9841F3D16E501BD76F06D3D3C0EAEBB1A9502BE706448BE713A1FBE211843BEBE3E01BEAA855A3C4A6F32BBD6FD25BD3A0F5A3DBCED91BD0A8ACFBCFA3B593D28C350BA055D9EBD63483FBD7EEC9BBD08C822BD573CB4BDD37260BDD7BB7FBC6B2DF0BC70AC2A3DE54299BDFC352DBD467BA1BC58F61D3D9D8C12BDE463DA3B7922F13C7589AD3C7DDBB83DBDC305BE1C334ABD4B44E6BDB57FD03C266684BD199DFBBCAED079BDCA1C9EBD9A6B563C281A7DBC2AFDF7BD7F6600BDD15B453DFAC1353D58B682BD143D74BD2986AABCBFA3B4BCF1130F3B7116A4BBB2624F3D9F2BACBD56EB96BDC350ACBDAFB841BD7FA321BD3B6B173D45CA853C5646FDBCA626E6BDA4C555BC4C28463DCEBD2A3D2FA97DBD055908BC38FC3C3D96847C3C9AC3683C1AA58A3D1EF8873DE51DB83D1799893DB2B8A53C4152C7BCC803CE3CB4863C3D34B573BDC17F493C256A23BDD44C5EBCF6370DBD879D87BC4E069CBCF6FCA7BDF9C5D3BDC6B3A0BCE21626BD47F56C3D234213BD5679683D6EB127BAEA983BBD4B0C36BB57F04BBCFA4A793CB514223C9F8982BD08689D3C48DE2A3D31CD6CBCAB03B53CA9274F3D1E156ABD5D8E4C3DC9AD80BD59A1C7BC2123C23C62D907BC52BA5DBD2DD545BC30B14F3D43B4FF3CB2EA1E3D5193A23DE028BABCAD76913B495184BD7BAF09BD8C31413D4C7E9D3CC6FC40BC4A5828BD6B0F89BD67E2AB3C561F49BD646F6CBC70C760BD365D16BDBA3812BCCA1DB7BC87A77FBC9AB1C6BC9EFB8D3CBCBE343B8B7F593D5A716BBC2983C5BDE28661BD8EFC78BC8A4FC2BD1BF68EBDD30820BD57828FBD9127523D91E0F5BC747282BD27DA7ABDF53758BDDF55A3BD513AB53C0BB8EC3B2162D9BDCEEEABBD756C4EBD0603E4BD32D4273D6AF520BC70C324BBB3B371BD15FE03BD818F1A3DC708A8BC35D4AABDD82D4EBC316A9CBD64D1EC3AF69D903D69290F3D206BAA3D223C873C71EDA33CF7B2ACBCC849563D9F80A2BCD281873C8F2A5CBD03DABBBC29C4383DD496613CCC1EBE3D328F2DBCCA870F3DDD2CB23C6E609FBCF2BD7ABB832C583C0059CABD6DD40F3D67724CBD732256BCBCF38DBBA35C3FBC132CA53D5F98B03D9D84463DD019F83D5953543D3660693DF1FA853D3DD0343D123AA8BDCE84A43CE3CDFABC7340223C38239D3DED120B3E97C0293E7A8FCA3C56D01ABDEF338B3D328BF13D87A87E3D8FAC8C3D54C740BD39A97EBDB8FC30BCA2D3433D6A1D67BDD8CA233DBB27543DFF6F1CBD6DBD74BD181F863D10D5223EAEBBAD3D8D6EAF3CFA536F3B8EC24E3CD13AB5BDBE37213BE628F93CB5ECDC3C5F6C92BD5603063D50CB20BDBE9DA6BCA6A7FA3D7F8F8D3D1BC86D3DAA70B93C33FB3BBD3B0EABBDA08D61BD24B587BDB28EA5BD54940D3CE200BCBD7F2F6DBDCFDEA4BDE1C911BD6DD021BC182EB8BB572A16BE8BC215BEA22679BC608B03BEA513D6BD5F300EBDE25087BC54D133BDBF59F9BD38BD41BD3C8612BE425957BEAC974BBD640286BDAEBDBEBD8F6C02BE5E740FBEE0A244BD15C7C6BDA4C50F3DDD229ABDAF80EDBCD15D8ABD09682BBD880374BD9F1A6ABD245601BBE670CE3CCFACE7BCE7EAAB3CD6977CBD1131D1BC46BDB83C8532613DF2664D3DD8A8A1BD036A51BD96951A3D7AFA023D7FDB7A3D2B30E13C2C9C49BDCA2ED53D1392883D4A11693D749D24BC9CF2273D49AE73BD421DAC3CC02F773D14E57C3CD1E8B6BC034B6E3C7FFA923D5B0AACBCD89166BCACB0F83C2FAE8ABC43099FBC9A7411BDF809EA3CD16F93BD6C118ABD85D54A3D673384BCAE188DBD880DE53C02A058BD77CC48BC3AE7173DA86834BD2ABD7DBD48AA343BABCA29BD4E29BBBC4B023C3D5B39113C85C16B3CFE7D91BDA04B52BDA61B6EBD7FB2593D317237BDEC502C3DF776303D197CC0BDA188A1BB42B929BDE9BC813DCBBE393D8985653C7322FA3C022DDCBC151E96BB338ACB3C1802473CDDD78B3C53C69B3D7050BC3CDB71933DFD6A953D915D7CBDD3FA84BD9EB327BD475B9BBD2EF638BC2711D53CE784583D2A8BB13D05ABA93D04E8E23B44D196BC49133BBD7460AFBB7C50873C797B9A3D4B212ABDA8BAA8BC7F2678BD1058FEBCC4D2C23C1056823D82312A3E4C0E183E4E430D3D97F5DB3DCE0BDB3C75C4AABC2E1AA93C07FA633C804995BD1AD033BBDA2DBD3C7CE7A4BCB68292BDEE350FBE8AB21EBDC43BFEBD2B94E7BD66C088BC00566BBA9880B8BC33DCEEBD3959D33CD780D6BC374C32BD120D783DF28B3B3DCE6818BE76C842BEFA7C3CBE564C8CBE8679F3BDF81C673D8FB7A43D2C6AEFBDAD0D59BDB6F564BCA06E6CBD5B947D3D8683A8BB64690CBB6B1F7CBD5B21C7BD8FCB00BEE1C0B9BDA8C9203EC107033EF09EF43CD5791ABEA1435FBDF777AE3C082D343C9F5A3D3CFB370EBD4BB1A5BD8EF6953CDC0DC7BDE5618C3DAC98EF3DFA629A3ED83E0F3E1304B7BD5C58B73B7259233D3473CDBCAC89363C4C9F35BCBD93FCBB9A08903C08C58FBD5AF7BF3C3F270F3ECB2C2C3E5F17163EE27EAE3DDB1128BE92C087BD0A7B65BDB12A753D7C818DBB9724E13C257F6DBD8EA8BCBDC0C509BD5BAFA03D803EC63D3AE46D3B7CFC7E3D505A81BDCCACA2BD65A27EBDEE738EBCAC42F73DBD2439BC4B5D3E3D7D94FEBC1C139BBD33D2EABCBB90A43D9F21BF3DC5D8513D66DF263D0B9A053D2E81313DF3C45E3DFB3AA23BC46F883D92288A3D41926D3DDF726E3DC73D9FBDA63225BDFEEA673CA96FF83C429E40BC3E64033DCBA10D3D95CF02BC705D98BD5A6827BD92FC043C82F36F3D7C6FB8BCDBB2283DFC24803DE56D243C364A763D7C19F23CF0E4A1BD119183BDFBBC973CDC8E4FBD7C9629BDEC8408BD424786BDD14721BCFC6BD93B85DC8DBC9BC454BDCD6660BDB9FA5C3DBA0A643DD0E423BDA58C5FBD7B88AABCAC8640BDA07B9ABDC4DA6DBDC789633D49E1C0BC2BB5463DDD37B93CC3CA31BCDF6F01BD7288363DE156AEBCE9B63FBDADAC323DDBAE9DBCA0A9183DF4C7903CA1708ABD4BC51CBDE3B7D33B1D0F62BBF073FA3B73BA1ABC607E67BCBF85D33B06AC513D4CB64A3B7DF40E3CB79D853D81FF763D5073503D8AAB2C3D0C9888BD2DA7E9BCEE3970BD3F7514BDE7F5073DC29BA23D994412BD86D1C13D9F96553D5673F73D40F5943DAD17843BF0CF583D735B3BBD3A8837BD655C54BD6FCCCF3CE325AC3CEF9325BD813DCBBCD463B03C5335033DE5E80E3D423A45BD8F00A83D0CBE4ABC502E443A46CB423A0DB38CBD11E0093D91ED6ABD444C003CCB4118BD9A53303DBD2D83BB1BAB23BDCCD0B1BDC5B3BFBD0B2D38BD0D1A6E3D104B063D064699BBA6E318BD374798BCC2B305BDDAE504BD79D7763D38FD30BD5A7F603D7E0C2B3CB15A9ABD56F7243BB975ACBDB43B97BCDEBA8FBC7FB786BCBA79FB3C2304DC3CD4FDC3BC6FEC6BBC027FA23CF9867BBDD2AFA03CAB3133BDA7F7F3BBE7ECF83C3928B0BD509B8ABD8C4D03BD9B92E53D0A394A3D712F6CBDAFF1B4BC5756553D27488BBDE7C7C03CD50455BD7418A3BD336443BDE6ABF4BCEB0A0DBEB3797CBD4E2FD9BC80A4013D17B860BCD923063DC813B5BB89BA74BC71FB53BD9F19083D9B0D88BDF38CD7BD723A35BD414A45BE2EA903BDFD63873D88E54A3DEC57AF3DCD2EA7BB0FB4293DD0FE3DBD58217FBD157D0EBDEE4E993D3050203DF29A1E3CE6A73C3C3D5CBABBC4B59F3D8300863D6CD0203D7A97BDBBC3D540BD8BFD573A3A3FCCBA41AE8CBDD563883D3CE9833D3265BE3D634EAE3D9F302E3DBCDB643D4461833D01DA6F3D60C4B1BBE5F463BC0CA092BBBC974E3D5F5237BD490B0DBDA34D20BD18DE4FBD8A8B753DC98DCF3C87C75F3D030EDF3DA2A6C03CCF92043D800056BC04E9B3BCC2741D3D4C6B8A3C6BF565BC1F9658BB18AB25BD6F0C44BCB906283DFAF95C3DA5446F3DF69C6CBD2B02F5BB944BC53CBA47333D7EB43DBD634180BDEFEB973CE1A13FBD5929843DD9D852BDED93E83C2910E7BC9B1885BD45BD99BDD249D93CAF38E4BC211755BDFBF4823D0ABF113D4C24263D533E1FBDF05629BC44BF133C813B78BC89E4E53C8C6396BCFFB808BCC9928F3C6F77F9BBD633E2BC0E39953C13C9B83B9D12923C7F86DFBB268B1A3D85C695BC5D92453DCF496D3C7707D5BC5175C53D2160A73C9DE391BC51D2B33DBB503DBCEEF8E73C6E565C3D6AC30F3C8EA2B3BC215B6A3C408CCB3C905E483D25F4653CBBA5533C212CB93D6C45113CB2C8BFBDDCDD24BDC008523C37596D3C50BCEDBDD1EB12BE282822BEB55DD7BD8B2AEB3C57BC87BD6A04B93CE3DE8E3B74784D3DD589B4BD5A08B4BD54B0BD3C3A3E9D3D19B91C3E7E5A89BD976C10BEC3448EBEE1C026BE62F58EBC2356023B3A9535BD0ABB90BD49C466BD7188D6BD88C135BD75EB753C2F52013E3482313D557DF7BC28583EBDC46532BE0FF126BE5058D2BC24210E3DB4943EBDF2E548BD30ABD5BD6585423C3827A2BDF1DF06BDB6788C3D4D6DE63C278C773DB81E0CBDFACE67BCE057073CD73F29BDCDAF9DBDDD677CBDAD459BBD4DCB7C3D60EBCAB8C8C4A9BCD1CB863D899CF23D7CBAA63D7825243DF21DACBD911079BD4991823DC559023D15C4D63CA6C8213C718374BD4A72AEBDB27C883D603CFC3D9555273E38310C3E7CAF593CFE25DBBC5245773CD612D4BC9FED983DC88ADDBC9A75203C519988BD2033D1BDFBF1ACBD31D575BDCCCB0D3E22ED143E55B2DD3D4A8113BD1DE23C3D05B2AC3BDCD25DBD293DAC3D4C7F96BDDDF6663DF161DE3BA28EDEBC2393DBBDCA4E06BEE881DC3B197F67BD8945A93C4FE2393DD999083DE468043CB184363D94814B3DCD1459BD989D223DD6781C3C6C03C63BEABBC1BB24C2FDBC0B709ABD63E9FBBC0FAE783D70FF63390947C63D81CF0C3D703F363D15343F3DAC85443D28431A3BBF9530BDDAFD56BDF818A6BD25E7F7BC87DD06BD5C0656BD7025F5BD1DE50B3D9EF223BDA61A91BDC926783DFF3C223CADFC4F3D45BD0CBB6328703D50A80DBCF2A812BD023AE53CF7180B3B21E42FBD97510CBD1BCAAB3C6C83403DAE807FBDB30E67BD760B1D3D4584363D062389BCF5F008BDF65A903C7036503D5C625CBD30B2203CE0C2023D9277513C1FAB743D938596BD2671093D32BF61BC18192DBD7ED1213C39E3BEBC756A653D3FA16BBDC5E60D3BC3191BBDC9D6BE3C85FE263DE64A0E3DB899963C2DBD8FBDD00ED3BA5E4B59BD39064C3CCA30453BA17C89BD39576EBD39B535BDB99F9BBD6D0560BD0A508DBDA41940BCCA04C7BC07AAADBD4FFF20BDA50004BC80872BBD8C75653A442D60BCE6A38FBD2DA34D3D88ED88BDD8FC67BD77DB263CB93F4A3D41E0833C794183BCBE65BDBDAAF1BFBD789B253D32F39EBD3CFFF3BC7B260E3D9B3A413D0706213D425720BDF3C3B63C96C5413D56223BBD64A848BDC722503D89680E3E06151A3D09BB863D48FED93DB39DD23DA514033D8CF7EBBCBCEC003D33778BBD5146BD3CAFAD2C3C72392ABDBDAFAD3D67C8B13C31082E3D6EE1F03DFB03763C399E1B3DCE660E3D6F11693DE280C0BB74ACE1BC4E004ABCA246143CC6D500BDD6E2143C9DD5B1BBE7C319BD8C0264BD6CD038BD2C7DB13B5F46A6BDCD1D433DFFF297BDD902803D2DA2A3BB7348233D89C1723DFAF69BBC6FB387BD053BBF3C5317CCBC31123ABD18CC0EBD62F667BDE1C615BBF12299BDC9FC2EBDB3CDFB3CEFFBD13CB4B71ABCCF14EABC886B563D2B528B3DE32FCCBCD64F9B3D2300EBBC927F143D6029433BB12CA8BDDD21F83B7E2730BDB9B7D8BC641B21BB01E729BD28A5803D4B9AB63D1B68393DD6AD9B3DB064F0BC80EB8F3C88B511BD9E7701BC325513BD4AEF41BD0C7CD6BC93E594BDBDEF1EBDBB8F3EBD9CA59D3DAEDDA6BB1679753CEC7230BDAFBA81BD740F2C3C84466CBDBF5EB13C2D33E6BC43FFC13C20CE213D0E3D443DEACA753DD19FDEBCCB9BBEBDC65F60BD61EE03BE03C44EBD8532B6BDCA43A0BC9CC32F3DDA6D18BCC67D453C38EA7D3D851C2DBD7DF195BD9E8DFD3C120F3E3D66601BBCE1819FBD4D0077BCFEF2993AEF4447BD764DC0BC5D074A3C2AB74E3D9527333C4208813D1AA5753DAC45353C0E744FBDE5B51FBDDF0EB9BC34A8E43AEF973BBD6DFE84BD5BDAA1BC165356BD1251DB3C3E1D15BD6BFAE1BC588ABF3CC961003C6A6C6ABC2F40D13C95C186BD4BE6083B766433BCC731B3BDC6A2D8BA696484BDC7AE0BBD8D4949BDA116AABD3AB5F73CE37BDE3C1051DBBB62F37BBD67CA473D6A912CBD37CF94BDD350B6BDB0884BBDD9A6CCBDB3158ABD12A0EEBD6A1F72BD1E3AE6BD4AFCC4BD20D2A9BDA67C78BDDE582E3D9F0419BD450196BDCB558B3C9EDC8CBD455A3BBE89887ABE85BA68BE3C4E95BE05FF3CBEF4A555BEDE2F1ABE79238F3BE5468DBC98D8EE3B611814BD5917ACBD941AC8BB820866BCB12A763D7D8D053D52169B3D7EFF423D8B1ED6BC125ED83CA741D1BB9C22FDBC75164BBD8581293D743F70BC3CCB6DBC127282BD07F9BB3DB9C41F3EE70D5F3E003D933E5E34543E4C9E343EBA89C53D9F96AB3D4263B03D6AABF4BC5E7BBF3C6F173BBD321BC73C4205623D8B94463DFF2D1F3EEE26A73D64C4863D48FBAB3D60F4DD3C28C24D3D6E17653D5CC552BD441733BD4371ADBDF4F3173D022D643D806C553DF91E543D66F7A9BDC85DF0BD0F3200BEA72741BC4EE051BD261FE2BD19C28FBD317A80BD492519BDD4E178BD2F31A0BD38CA0A3DFDB3D4BBDEA4D63D8E0C933C99D6D4BDE34BEDBD630AFDBB30D4423D8BECADBD1722A1BDCF1A50BC8A759BBDC5E2A73CCF16DEBC7E079ABDA2CF9E3C92C18B3D95A8DD3DE25F783D5723C7BC4051673DDE8D943D7F52943C6BBDF23C13003DBD653ABF3B0CB1BE3AF6C03B3B92A25ABDBF74BD3C25B253BD44CDCA3B56FB40BDBA21CD3D87309F3CDB5F33BCC1403BBDFE74193CA07E293D6ED189BD9FB7B6BB7B5AB33CE7C7A6BC48F4ED399A0FA9BDDFA4EABD8521A8BD3BC0CCBD5CE672BDF27C73BDBBB4C5BDC6205BBDE01283BD6B560A3C4F943B3B8E5820BCBCE75DBDB46F14BC500620BC2329F0BDBC1D15BE27D9E7BD5D7E22BE69A39BBD0FC325BCA4F747BDCFFF253D47337EBD008074BD0D33DBBC8BE5C5BC40BD3B3D60378DBCEE48743DD1A03FBD003158BC3F2F9A3CEBCEB03C03BA383DAD2646BC49A4A53A289998BD309F1DBD7DAD49BC45508BBD9356E5BC0AED5A3D9A2CDBBB0734033E1E003E3D0E00053DB826993DDDB886BC9A51C53B7F78423D66E3223DE7F14F3D66518DBDAD72743DA1428A3CFDEB803C5958D8BCECF449BDE0B871BD421C77BA044480BD8E599CBDFEE3343DC3E709BD3CA78CBD26C89BBDFA5D033C0AE860BD3B5A02BD27E65CBDCE5651BDAF808A3C039C353D22C6673C790B24BDE835FFBC66DF9BBD5FB7FFBC0F7F073D27BB63BDC210003D437D8CBDB4FEB5BDA270183DBB86BC3DC170C83D92C841BCFC7680BC86CC5E3D8C66A8BD204D2B3D6F7B8C3DBC04C9BB379A613DEBE991BDBE7E2D3CD17D7D3CE25F813D61D7213DE510983D32E00BBC81BD183C3C76173D0831FB3C1646743D49908D3D1AC96A3DE14A83BD1599653B7D44B0BDD3CE983A7F7DE13D5B944B3D97D0083C2882A2BD5519F23C4F287D3CAFED653C05EF6E3D91CBAF3D3ADF05BDDCC3D2BC15C37BBD4882823DCDD6C33D670C003E345C733D663983BD1BC41FBD0F44FABD39CBA4BD7E6DCC3C6BF9593D04E4963D87144B3C384958BC222F9ABD219A75BCAE080B3D119FEFBCDC8524BD664058BA646C0BBEEDE39DBD783F9BBDEE5DF4BC7705DABCE1765B3C94FDF43B339BBC3CE4C3423DA384143DF998DD3C2728A53D7649373D6336B83DE4827E3C508ABFBD7959C9BDED3DEEBCCFF3B7BB684322BDD9EFDA3C57F24F3D6EF59FBDAB2E14BC61F3883DBA5AB93CF063D73DCC6AB63D7C4A453DE820853DE297453C9536FEBD47D0F83A92E3563D183E413CD653FABCB47D86BB9B06AC3B5262C03D4047833DEBD9D73DDFDA803DB178CD3C80D9933D5C14E23C5ECC2F3D69DA93BB13E4AF3DFD0DF63A7B329FBD22ECCBBD322A703CFA681F3D9523EE3DA397373D499035BD378499BC00AEDC3CD3DC423DB0A8083E14971C3E9F7B5A3D429C733DDF044EBD00A205BCAFA466BD36DC30BD0C38B8BB8638403DEFDBA9BBD219793C964F583DB128AC3D4CFC643DF87088BB37CD0EBD1585A7BBFF58EA3B018F9FBCA930D1BD732101BEEAA115BD0E873FBD9B117FBD8AA34FBD2391BCBC6DCE1DBD62068A3DFC5D693DAAB851BCC9BF263D4134BA3BF9B70EBDB2D57FBC196A38BDD2CD36BD107AFF3CE7E101BBAE6C933C86E09C3CBCE60D3D422407BA68BB61BB74CE0C3DB58B3ABD68B8833B68B5BC3CC07FF2BA5A3128BC0D761B3DC69A013D18384BBD8DAE6ABCC9F51ABD969F223D5B00593C3061293C09D61A3D747C00BBB5014F3D0A740DBCD58E2A3D5323FB3C40AE693D3769C6BC7E8A433C066D96BD31CD5B3D64AB0CBDA0E281BC862A9CBD8A89F0BB1C0D813DEFFAFEBCB7AEBA3C0ADC143DA7C7323DA5FFB03DCACE36BC57744F3DB00C053EFF7FB03D53DF91BCC332DCBD2F7A013CCD606EBD3212853D525D3FBDDC04143D612D0DBDB98A373D0A1E643DA1CDAE3DF5824B3DC351DC3D0FE77E3DD2BB543D2B95183D5F524E3D0A3C84BD351A203D371040BCC090C937B2082CBDD416983B004FEB3C7907A73DF87ADB3DB265943DDE5DC63D9E03E13D94F8FC3D4587D93D61A4183DE3A7123DD9E9A7BC3A7AF739B200AABC69D6F93C8B9A12BD54BE7EBD1E589BBDAA3F15BED1695B3BD836163E2580F83D57ADB13DB490423B536376BD22600F3DA7E3323D6B277FBD41D4D4BB366A27BD5915D2BD0446903C3520B5BD23DCD1BD36BF583DE95BF83C1A1E943DF04ABD3D2665383D3D00483DD6FD14BDD9DD8ABCBC630C3D7956A7BB6FFF9C3D40470C3E7C77073DADAC51BCECDC89BD96386EBDF4DB98BC89E709BDD6B9343BD3C2453C67704DBDF0E0A13D1A30C03CF90DF23D5B95953D0962943D96F4BB3B7F72943BB855753CB46EDEBD594A433D2936513D6ED3F63C2D90453DD97D203DB8C7033EF53E1E3EB26BBA3DDC769C3DE3ADCEBCE4A42F3DB3787C3DEF51613D95D8913D655B1C3D573CC53C35175F3DB22D973C745C2DBD6E2824BC58CF623C1317ED3D87A6453DF1212A3B76CE3F3D21EDFABC977F9F3D2666973D310AAF3D5867A43CF99D70BD3D8E993C186D823C66FF8EBBFFA57A3D1CC23CBCAADADE3D39BB9D3D86BD42BCC08CB5BC88F0473DA96A9A3D623A863A623EA5BC747C0ABACAB084BD9E91C4BCA3FA88BDD80EB33B622FA8BD20019438DF993E3DF2922CBD9451673DF2DBF8BC340D6C3BB18A583C5EC938BDF5093B3DFB33943AD0078BBD1864ED3C43980CBDE87A4ABD3703903C55E54C3C187271BD6C89663CF66E3A3C38A393BC479D4F3D66C9AE3B950A103D00F498BC709EA93C6A36633C4E70573D5A3C85BD704897BCAB70153D4C2C13BDE8DD5EBD75022E3D6145083D4E8E803DEC6CC63C741BB9BC722571BDCC874BBDA0748B3C09838FBC70718E3D3DFE473DC049ED380D337D3D66B1AE3CA4D4A63C0A70903D07923FBC834F973CC806FEBB529A803DF998CB3CED9855BD7B77BFBD60D3383DE611433D2CF4B13DA45EC33D24E3D93CFCDEEA3B127C91BA46881FBDC589CF3C1B302F3D9340853D3B158CBC8B94D6BDFB0AB63C3EEB90BCA65AD83DFA3DD63B5F92A6BD04C5BFBC6A43843CEA8F45BBDB48083EB6892A3DDED30DBC8F822EBD63868BBD866FBFBD8A2101BDDAED013EE2D5C63D6AD08D3D94F93CBEF123DBBD6C4DE93C5BBA203D9C5C7B3D15200F3E77CA243C397213BD06F8B0BA1FB580BDC2771B3DEE9F423DDD92323EDC69AE3C8B0F40BE051716BE55A423BE157966BDEA6ED53B9F48BF3BE2C3E2BC1E1C6CBDA1B348BD417773BD2CC5C6BD256F49BCFE729B3DF87782BB41876ABDFFB98BBDA5DCA3BDE95384BDA4D785BD6AC1503DE159A53B8743083D89824C3D6FFF3FBDF1E889BDF0A424BD6A19BD3D2736D63C32961A3D107BD4BC4D1A56BD4D698BBDE1E0913C7D69923D7B6581BD9A8355BD06E5933CE633F13AD593803B368F253D2F49103E3FA41E3E312A0B3DE421933C6B7D2DBD59A837BD54B053BDD996DA3D152F20BD17CE7DBCE07B083D00C261BDE1CFBE3DEDAA2A3DDE74073E29D1213E19317E3D14DA273D5277CC3CC883C7383AD2F23DB5A4B93D2EF38FB9DFA7F53B51CA45BC8D9689BD0895223C1251B43C91D4D43DA46F063DC689B83C3BC005BD3212D23D52F9EC3D98C6AB3D0E9E3A3DD6DC01BCE6578DBC81E9183D71E3903B5E1B203C876298BD41E98C3D6686DF3D7040F73CD3A4293D0E42523DB255063CE764C1BBF2A061BC6DE4123DB343D6BBF9C61DBD8BAB9B3CBB7153BD954F2ABDBE02C3BD1090C33C1994C63DBFDFAABCCE5D63BD0039CFBB74B6C3BC5F9B5A3D0B72823D9C8D653DC44702BD5A297BBD97BE5ABC02E69FBDA944E7BCCBFC7BBDE701D93BFCF11D3D6B9FAB3C3D096B3D0BC4233D029B93BD5A9E2C3C451A4E3D5909033DF38581BD41159DBDCD78A3BB5676813D1BCECEBB448D0EBD92CE74BD666C393CF5E6523DD55C18BD0DDB6B3D6B73133DA3EB7F3D929B083D820BA7BC3D48693DE45A32BD8919893DAC06043D27D2933D170DCCBCA6A64DBDBBDBABBA5EE614BB464F59BD98C19EBDD3FA41BDF790763DFCDA633D209A87BD1A71FC3A20347E3DAC8ECA3DC7FB163E49DAD73CBDD2DA3D1C24C53C15F51DBCBE9A863D2CFFDB3C5AE5743D3B7C0CBCD28FA53A619D93BC8B3A16BCE3978D3DA89628BD8BCE6ABDCF49F2BD53F5B0BDFA8E95BCE8AED53DB4D34CBC344357BD7FE083BD3757343D49A4343BCE5FD93C8CBAE1BB2128C73A4385A9BDE64C03BD69BDCFBDA7BD92BD594CC73CC287953C4169043C0B24ECBC487B45BD89ABF7BC69C71239F94A98BD1D26213B67A258BD422BA3BC365289BCEB049D3C1D78D9BCA14F7BBD025DE83C7DC577BDBFF88C3CD84F403D1C0695BC5861DBBCE353EDBD0530DABDB5739BBD835A3DBD3CB0AE3C36C7493D4687B5BC7F75633D69F32ABA6F96AB3D34123F3D437FE63C523AF93C6499E9BD6812AABD983967BDCE23893C3BF73E3EF5E44E3E8BE1DDBC9F7C95BCD83AC73CB5F5C1BCEB914CBDDB0ED83C32655C3BCB199E3B5864363D7199ABBB258E953B951CBB3DFA431F3E15ECB13D0EF0E1BD8935D2BD867B0BBC5215AB3D2C845ABCAE0E653C8342F43C1AE2C7BB7DA0423CB4C7E73D0022CA3BAA9A0C3ED9603B3E0039F83D19B02A3D8B4E8DBB5C250BBD102734BB68B2E8BCE7AA3EBD9F0A91BD322D0E3D54133F3DF670443D285F9F3DC288893DB7638A3D2296D23DE03D943DCB10EABBDA09BF3D823FE13B181283BC7714883D05B852BD3112C3BCC9602A3C1FF838BDC753873D34A4423DC0AD2DBD9475563D2D03723D08F2753DE6B2DA3C777643BC6EFE743DECCFB2BC84FA5CBB11A560BDB28E8CBD42D8B8BDBA5A02BE649E73BD8C9F4BBC8BE834BD5EAB9EBD7DD1FC3BF4F190BD862A9ABD5FC8D6BC6B9825BD06199ABD59168ABC67253DBD44CC27BD163F1A385BB125BDAAED603C2B13DCBD787CDD3C222B143CFD3409BDE96C2B3D9107753D028F9D37382D3D3C5E65E9BCF4A85EBCE0BB30BCE19932BDB854CC3B19CB0FBDE0FCEA3C49320E3BA85F81BD7B39693DD2675F3C36D1D23CCBE1A1BD7E33593D35DD583CB2D75ABC6D674DBD94A29C3C8C722E3DC277F73C3B09703D967161BD3BE716BD412CBE3DD0068E3DDE0E2DBC25CB003D4E2D2F3DF5C82F3DFA9E39BD01BB19BDBACC43BD1FA0E3BC829C253D81E62E3C570B69BC9AB2BA3DD1B9963D8724513DC443D6BC3926323D3B1588BDD82CE33CC52CA0BC2DC3C7BC6A09A9BD41BAC5BC4558CDBD3A17EFBD024E92BC5D109ABD487FF53C93A8833D69CE923DDABB073B48AC80BDA0A4F0BC143448BD26A83CBB10909CBD008134BD8A7D8BBD41AEA1BDD299A9BD014048BD2A3AF2BDDA6EACBD625863BD3F60703DBA320B3D9D1290BD4B3C8EBD4F724BBBF1A64CBD77D20B3DE4890EBD15208ABC9EEE94BC1949E2BD0FB39DBDC86FD53C3E972E3D81C56EBD5FFF503C2E75693D3D089ABA89590DBBEB61463D2079393DBD58B13CE4C1803D6B323A3D089F77BD503AE43CDF89963DAA53A53D9C8E2ABDE39010BD1D49193DE0F7543D74DFC1BB5DB1DF3D6FD9E43D8D2F813DDCB9483C0026DEB6BAD4783D8438633D0BEBE43D26565FBC492F08BDEEC689BC10F2483C4F63323CD716943D792C163D533E1C3D2E5BCC3D71F7453D00277A3DE7D1AD3DB318B83D3C69893D73F5613DE02F92BD8D2DF7BC285BFA3C065959BDC540EE3BF8ED1AB96312363D97EC1B3DC7050A3DDC4F483DCE48BB3D4EE4AB3BC340A9BCF9B56B3D383225BDC089273C59D088BC1BF7BDBA4DED973C0E88A73CB8880F3D17B6983DA42C233D7E05723C61DCA53C1C1151BD160262BC1A074BBDF7E7C83C2EF9793D6BB20DBD5D70A8BD6833953CB848A6BD234F97BBC1068C3B163158BD696DDF3BBA172DBD40BC363D6D1999BDDD1390BA7A4E45BD1684443D5EB9D33C46D7373DFC5684BDBB69F8BCD2E7ECBDA0F69C3A21AFA1BC803D8C3CAB731E3CF0E37EBD488CB33C18BF1EBD1B679E3C3CE705BD749CA8BB48341ABB74903C3D30C909BCFFCFA2BC63253FBD31BACABD5BDF89BDBD1676BD18A1183CB9E569BC5E6F663CAAC339BD583BCFBD346880BB1F740A3C4AB2A73BF950DF3C035AD6BD445A88BC851ACB3CF1F98DBDEB492A3C92D2BC3B60E784BCC289C9BD0DBA5E3B5A7E0B3D701F27BDA7E12FBB99AB143CD0D7EFBDDAB914BE97AEACBD335BB9BDEE05D7BDBE1EB8BD777262BDBD699FBC1A1E55BDF3E8BCBD64D718BD81EF06BD3381C4BD4DD9A1BCB770A63C5BE6503D099ABBBD1075ABBDD2EE6EBDB54CC93D68B0113DB0C7133E3FFEEE3AEA472E3A7CDAA23C809B89BDA648ABBC056DE7BCC4B6D63C9E6F50BB505486BD6A9196BD68EBEFBD8028663CB88AA53DFF3F233EE1A6303E03937DBD503E80BD4E9160BDCCE7A8BD824C27BD5EEC6DBC0E3E473D585234BD1E0D51BE3D99E8BDA47ACEBD996CB0BDD3335A3DD496A33DA06B863D643A9FBD6250CABDC800643CDE25963D3167513E92556A3E7D7E423E24E7053D66DB343DB37E11BEA68845BE70991BBEC4261CBD48AE263DD02120BC8F0ACFBDC2F0623D7180263EEFBA4C3E6590103E2FEA423E85AE573DF28E1C3EC033BB3DD1E203BEB3BD31BE195F80BD2D51B3BD675A0CBD526997BD8815FC3C0D34F93D87E4203EE683053E5C64B53D81E900BB6BD0F13D52C60D3EC5D8F73D421123BD6A9B1BBDF31FD4BC795098BDE2A4E6BD768202BE4B88E2BD9A61ABBCE122683C1894653DC9FBB83D845AE23C6DEA473D59778DBC242FF43C808A08BDC0AA523C5DF9C43C909082BD53FC05BE276E85BC01603CBED76A4FBE885AD33C0F88B03CA3A6133DD87664BD90E274BD44F9E9BDEEB4C0BD90A81EBDA1DE67BD93EA15BDD6200BBDBB74E5BDDD978FBD2790EEBD35DF2E3CEFE21F3B3C5709BC16B6C23DBAF8CCBCA4570ABC0DABFBBDCF3D8D3B24C08C3C58BBE0BDC296C7BDD7CD04BEC0611F38AEBE9FBD7DE9503D514FE53DB3A1513D89CAC43D6A7648BCF116D23B79AA3BBD076C363CA63A283D4C13AABDFF5036BD9D6972BDC604D73C61E21F3D1A9758BC074AD53D7F588F3D6E38883C1F952F3DB496083D47D2E1BCE663B9BD2B152FBC716EC0BD849DCCBCE43DA5BDB47AA23C89B8B9BD577FA5BDBAD38BBCA79DEEBDF421783CC041CDBCDEBCD93BB1E594BDB6C305BDF0075F3C042A883C3F47CBBCC3CD2F3DCFD33B3C285A23BD1199B6BDCDAE1D3D6D3F123DB36970BD357788BC986C623CC5FB0E3D911A41BDBA114C3C0F1974BDF52061BCF9F010BD8803BFBB3C39CA3CFBC6973B12BC7F3D288EACBCC42D82BDAB6BB43CD485F4BC763C2ABDCEDAABBA26E20BBB5D37F6BCD7DD60BDB37702BD3B02CF3B3E11253D6F0AC5BC2D83023E5EB65A3D728EFE3CDFC3233B3E55C73A9F736F3BDFB5AABC36D3DEBCAE6082BDFFED4A3DBE77FF3D103AC63D2C501EBC5DF88C3DD5AF3DBD5A99EDBDAB5D523DD78F913D14E4B43DEC2996BD760E28BD1AF358BCF35649BDCE2FBD3C1A69B1BC9BFE6EBCE7965DBDAB7041BCF026903D4AD0E73D5DA1563D43D584BC927223BD8C816D3D01792DBC8ACEC1BC449794BDB09377BDE1B754BE6029F9BDCA3D7EBD3AE790BD054F0F3D3A41B63D8740AFBC5CF6D8BC54ACF2BD232B0BBD015C253DBD8CC6BC0F42B8BC3D9824BDBD87E7BD83788DBD3A986F3DC5BEE5BCDE945EBEC1822ABD62BED1BDFB3BD6BD6A5E2EBDC0ABE33C2871A6BD6B842C3C175D753C140D86BD72EF133D2B54F43DE7DD983DAE5843BD129694BD718087BBFBC8B03D29B8F73DB20B473DAEF2A73BD7A880BD7ED40EBDC693A83BAB0CC73D0F38843D55AC413D8E6AC1BCC7272DBDBBA30FBC66C12A3CDA69AC3CA5E3F93DA4623D3D154A0D3D4E63373DF30C543D4C4F5DBC6D5E073E1194E63D71C182BD24D488BD5C2DB7BCD5DFAD3DE5DD1CBBF4CF4C3B9423783D7E9FD13D1201E1B811DDE03CA55F54BC413315BDF864A93DBA11003E70C2E33C882E073D7705AF3D2D06D93C0CBFA53D9796E1BCED492FBD164B8F3D625CD33BD34F52BCB92745BDD683093D5BCA053DE7C045BDB92D8D3D90ED193D95935ABD9FCD063D3138843D1DD9503D373631BD02444D3C2BC898BD767242BD4DAE283B08B462BD34D2D93C9ACE1C3C77EA02BDD39CB83C63CE183BEF44823B5BC9F83C543D8CBDB5D8D1BD38D4A4BD3B681EBADF43D3BC222805BD7AD3D83B1B03B2BD2D913CBD6C12A6BDCA2CB3BC487C30BC56532CBCA77DB8BC69A591BC187E95BC9670A8BB2B6239BD6F222F3DE25AF6BC523CE23C8ED37A3D43C6853B35173BBD7CBDB4BC0FDE8EBD236563BDD2E08A3AEFB75B3D6CD99BBC7A8B31BC715BE2BABC3B36BD5A0C2ABD373B79BDD97E33BC17059D3C9FD9683D48EF80BDC3E6573D40D00DBDF3436E3D6BA617BDF82249BD46BD83BD984B5B3D5FBB87BDBCDE2A3DA6675F3D5A6562BD3212373DCC9C3F3DC04C9FBD872784BD0831473DD58D3FBC39F0BB3DAD0D5FBC7718F4BBBEE051BDE9AD763B00014FBDE8283BBDFAB3663ACEF8AFBC5103D2BC6590C6BCD092763D9810B23DB3DE873D610E6CBDC62080BD2E58A0BD2149A1BC78C66DBCF5CD573B9253C83C343C2C3D94B3AB3CD24E773CD45E5E3DB0938F3D5EF10DBDEFBDD8BD109E5BBD301ECEBD941CEFBB1415B13C191E0DBBF82657BD03871CBCB1C61B3D515EA63D485AEB3D85490F3ED0E8C13D56A866BD154DE6BCF8E221BB4CA6CCBC711001BD7738B7BCAF04243D73AE693D97564CBDCFE72B3DCE2D94BBBF6FA93DA0A432BCF7AB87BDB295043B155C663C10E1D33CB455CC3D39F901BD74F767BD7D674ABC5A98FA3C82B74DBDC023123D9F4FB3BD7B09A83D79768DBD7851C5BDEFAB0CBED997DBBD57D4DF3DA61DD53D5CEAAFBC1A1764BD01DF46BCB7FC1E3D59E7063DE6EDA4BC408421BD206683BD22AB1E3C3428DFBD083928BE44DE8ABD107A2B3DFDA0063C6875C3BBE7C3833D911CD6BB251E3BBD7A0C4A3D380C393D13010CBD7A44CDBCF3A099BA5948A2BD948B9AB96819BF3D6432D53D0901003D5A36A03C511244BC85613D3DF084B43CFFF9773C54B0173DDD7033BCCB93C2BC085C4F3DCCBB8C3BD566FA3DE458523D2A3F9C3C7093BCBAC9364FBD049085BD36792B3DA5B19EBDC71309BDCE32023DBC61B0BA0BAC803DC55F37BDD36E613D1EEFDF3C0189843DDDCFC73CCCE2C83C96459FBD62070ABD41AC2F3D1ADCA13CE73684BD1BCF2C3D886A3F3D046E29BDBE128BBBFA3C793B7713D73CB968293B40D206BD00829CBCC16F0E3D385C673DD6AC5A3A70EF103D90D5113D85BC103C8D8516BD6034033D4A07953CFE5856BD69FED23BCA57183B267B193D8C7114BDE422C53CF50733BC4A179DBCD877B03C6E0F1A3D80AA823C4081CA3B3D8C2ABC46D899BC5001EE3C4F2FACBC4729403DBC11223D127397BD5264023CFDBD92BC8E3E893C708C4B3DD1EE2FBB7AFD2BBD457F9BBC057C32BDA5ECEC3B1FC98BBCA92C51BDDB81D4BD078399BC7FF4943D8AEEE9BAFE0C823CDE8D75BDC0C1403C4116333DBA4072BB6568D4BC3D6005BDD0270ABE71594BBD902D17BDAFC5743D15D4E23C82AA023E2E30853CB9AC1DBD9F98C43CDDAA803CC89D93BDD9574BBDFC3F63BD2BD988BDF6B992BDABF5B7BDC986CEBDB5F5CD3BE91EE3BA9DF6D53D442AA7BCD07F663B5B00433CF9644B3DFC914EBDD88D8EBD4190A6BD198D43BDCFF682BD1A30073DFEEE323D7EF4D73CB3688FBDD35B693D452ADF3D6EB6A33DDDC9823DF865E8BCA0FE2E3DF4BC93BDEAB0753CABCE35BCF45E743D3D55713E2D672D3E3BB585BCE0BCC4BDC5C3953CB89647BCE856543D46FAF7BCD00222BDFCA1BDBB8CE9963B366863BD9AA0F6BDACE9FDBC1B79C13D4270063EA36672BC8F352F3C3ADC93BD2C397D3CA5B2893D1E47E0BB78BC0EBDE77CA43BBC8E7CBD138F86BDD807E8BD716B83BD5B04D23B1C76EF3D335AD7BCC93FF2BD5E52BDBDB961D6BC3ED5763CC03CA8BC234799BD44DB84BCA9AD623D1BB248BD19EE9E3C4EE98D3DB6D3113DCA7595BCF3B69E3C88E474BD6BAF57BDF096243B503517BC8F09FB3CF4A43E3DC5037ABD54A9B73AF841743DFB1601BC7CB8AA3DEFA1F63CA21B5DBD0C2D4CBDE8062DBBB2CDE0BD5629ADBCC90122BDDA70ACBCAEDE7ABD18B9933B553756BD464C743DF962863C8BF606BDA7C5803D3726033D96109FBD2849B9BD46C4DEBDF25EBEBD080A29BCD97D6BBD0614013DCAD79DBDA3FCA1BD8BB7193CD588A83CADA5F73CBD2297BC2D6AD63D57AF3FBD4AB0143C7EFA253B1EE31BBC2651BD3BD6E636BD6695833C9CA84F3D593EA8BDB41D193D96CDEEBC92AB633C386F073D6604353C4D2E17BD95F132BD5A3007BCE0484CBDFB1979BD67EC95BDD7BB833DC1E391BDAB496FBD8187A83C6CB2163DD0915A3D7F0B3B3C7217553D4F9C45BD059C8F3C88197F3BB00F91BD92966A3D7CA0923C729DF33C0183083DDC6A8A3C8B5B26BDBDBD223D6E4FA63BA9B306BD1326163D2BF202BC2A42FE3BB169333DD2684D3D39053BBC599C69BB66A295BAA4A4EB3CE191BC3C41685B3D60EF0EBAA095B33C0D6C7B3D6F25F13D0C9A003E4A50CB3C79E6863D6269B13DEEBF5C3D668FE53902D29DBC2181833D061E213DE0E0443C475B273D7744C0BCEF33B9BCCEEF153DDA0ECBBCD97DFEBD76747FBD6C1296BDC30865BD2E083BBDDA7F183D8090603DE5B41A3D64A5EE3CA401FD3D86F7303BB0CB403CA45A85BC71E4273CD04F733C9B27363C079EDDBDC3D5BFBB274E67BD72CF81BD9B00633DC71DB13DEA91003EEF16AB3DA0C2F0BCF1B7863D8967183EB116073E1670DF3CC4BB813DF6E490BD0A2EAFBDB48B7BBD8A278FBD4E0BCD3DE6DD833BC4B8C0BC809D153DF871C8BD118B513D7AA9463EEDF3023E6EA3DA3DA15C1E3E377C9E3D09E5383D7136493D4BD42EBC6A4F86BC08C12ABD7A7A10BD7F9B9CBDE8F3D8BD890003BEC01B593D2D02AF3D0D44513DD579873D50A2133D05D04B3DC59C79BC62CBDBBC51CC473DD2DC81BDCD9575BD88B7C2BD7964A4BDA023B4BDDD42103BD546423D7079373D77A3963CDA6CCA3D1C26D9BCEAA6643DD643A6BC650C9E3D5E4495BDC7174CBD841FCD3B9A3371BD55308BBDFE5389BC0DB8CDBC5B6A013EF4F4233D7205933D3EA2DC3C8DB44A3D408792BC5624AC3C8E38C7BB68E3CF3CC3C17EBDFEBCA33D2273463DEFF2BBBDC586C93DC8AC0B3EB4D28F3D51EBCEBCCA77763C1170AE3CB28075BCC67AA73D6B234CBD388CB6BBFC4207BD6439FC3DDB5EED3DAFD3F43DBED278BC2219F93C0E688BBD17C7F0BD7A179BBDC6B49DBD5FD8DEBCB4803A3D9112E03C523DCA3B1A6854BB6BCAA7BAF97EF23CD26EF23DAC17E1BC91AB13BDE14715BE9ADC76BD620ADE3B02A82FBC18E0523D0FB2803CE0347E3C644CB43B34DC933C938EBD3DF7E2B43DD5A7B63DA6C5273C8850ACBD8AE3A93C778FA6BD9C659F3CBECDFD3CA617B73CD3A05C3D0168E43A4C6322BDF903043D602A523DF4A8B33CE32CB83DF692BD3DA1A61CBC2CAEAEBCF0E5E8BCE0800FBD7C9F89BDCCA4AABC4FA681BBE0E357BDF2E04FBDECF9853D6CF6543DB60954BD4F7125BDC9F6023D7114BC3C1DB72EBDC35B68BB2A0544BD59A7213B64AB33BDB8EAACBBD89B553A9B4921BDB6CD783D2B2E9ABC5471BB3CD9C923BCF5086BBD8F0480BB5A4312BD30F629BD46D4C6BBF03551BDFAC8EFBBA136BC3C03933D3D066442BDF11CC7BDDDA9A9BD7ED7A0BD43458BBDE53CB6BD4A03923C76B883BD205A53BD6CE59CBD55FC793DBB6F5F3D802E84BD16DE0CBD5BE90EBD16BC9CBCC8FA38BD2486903D81BE193ED688793D0E92C1BCC4CDAD3C2193D1BD3F8B24BCA4BEA1BCD06DED3B2E3F973B15EF44BD7CDC90BD8CD3BE39C156183D73AFF53DFB8C253E20E6EC3D269D8E3CB90D213DD7CFC23C79D0EE3CA909A0BCA25D0BBDB6EC0A3DF94DA43CFFFA8FBC2BD3C23D4D47BB3CE1707E3CB80CDD39B921663B9F678D3D5F7FD23C26F83B3DED8D043C6510663DD294DA3C4A668F3DD3B8A13D0CEFB43CD1E57A3B24C276BD09059E3A8CBB33BBB1E1113DBE928D3D0FFEE83D6380973D93FCE7BC60AEF43C8DE9E1BC786F23BDB3C5993D642388BD2F63BD3C4BC46B3CFA28AF3BFA181FBD14DEAE3ABF550BBD8D61D2BDF861B93B0602DA3B2DD30E3DA5B7363DBA04383DD3FB853C9E7D3EBD3367E63DE354D13C62BE03BDB06F9EBDD4940F3D33B625BC94F1C0BD74DFB13C8CDC473D6B587DBDABCC3C3D3C4CEFBCFD748CBDBEF5883D96BE063E4779323D324EA5BDB925C8BC603ADAB9D5D96FBD4156C5BDF1AA6D3DFABF983C3EDF74BCE09664BDFAFABB3CA5ABB53BDA0EE73CD21E823D9E87FABC38EFE5BDB4BF92BD88F2093BE34E21BD574A9ABDBC9C1EBDCC46873D8960F1BC7DC7F63C1190B2BCEC03193BA9075BBC1129C43C70FEE9BCAE5A833DE82420BDE580F1BDB98666BC0D70A93C1871A1BCDD8F6BBCA2D0803D0AD7F9BB559C343D901D743D8399C43CA687493D0BE9A0BC6504C5BB4F6AAABB8DD47E3B9578FC3C5786943DA6272FBDD415573D03BD8E3DE0AE4D3D55D0663D5401873D94DE39BB210A4DBB5EF0E1BCC9D2BF3DA756683D05EB2A3DDE6A4DBA1290FA3CCE831EBDC8FC83BDA87EA1BC23C0B13C098A6FBD1C638A3D1F11B73CBB6700BD76C0823BD7CCBABC4E7D5A3D648151BD5967813D91C413BD224A853D57A22EBD55DF56BD411AD3BC2A5307BBF93CC5BCBA0782BDCC3A7ABDA4FA583D18C3B7BD41AA96BC204FD2BD77CDE53CBED890BDAFDD5A3DB9295C3D1FDD75BDDDAEEFBC960ECFBC4F9F1F3D31EEBFBC4A0B5F3AF1F912BD50768BBC35B7DC3CF377CABD8C5A52BC6030CA3C499C7FBBA540E73C5A39EDBC488D0ABD4BD6443D54E4D7BCC71A0EBD6CC8D7BD0C74CDBD2FF053BC5281EE3DB0E0553D10079F3DA5A35EBD637C373D454BE3BC35A0653DD10359BCCB7E423DBA2ECFBDD32CDDBDF5B52EBDE13282BC7893B0BCEB01A33C92778DBCED811CBD839BE43B2C39273DC3D0493D10DEA33BC80D24BDD9E78A3CF83BC33C32A162BC40BEE43DDAB9BF3C3AF534BDA9D1A8BDE22E8EBD16758ABBC21030BD4CD80E3D800F313D1EEF733D658F333D66D822BDBA6485BD272F823D88567E3D5A32B53D68762A3E45A8323EB172703DF136E53CFFFDB03CAACF2ABD91D586BCB7DEC53CDC5587BD9175153D26D55F3D88349BBCD5438E3DF0A0B73DBCB0693E5B0FA03D471910BC9F3C90BCB7E5D8BDD0A87BBDFA75A43B073704BD4CA4403DCC3DF73CF30ABDBC8F3E20BDD3C0A9BB599D633DCD530F3DE3BB1B3D3866A1BDC4D65DBDBC03E2BDAFEE4FBB32D992BCF3ED0DBDCA05CFBC272BC3BC1CF5A3BCD7E003BDAA6CA5BD28D7E6BD811762BC0A903E3DCB1C86BD29DCC2BDBBA2D9BC7518CFBC202F9D3BD0A5DE3C0983533D259486BC7BDF5EBD601E82BDCE6F38BD1080FFBD4846EDBD405D57BCE75D433DA314493DF348A03CA9B68A3DD2EA493B669E42BDEBEE893C0A3789BB7749D6BBEF0798BD9D58E7BCC414CEBDF878F83CD03B86BDEBB29ABDD6194B3D630B063D7BBC043CA2B62C3D9B3F723DDDC4853D1159C9BAC6E137BC23E0BF3CDE90183DD33110BD4EF204BDFC62C1BC452B8E3C859C79BC0BA2CD3D8F9D743C4F780D3D36808B3D8D32113D7A9EAABC5FCD803DA4CB0C3C65BB43BD9F3F363D43B389BD82239A3C554873BD096C743D735054BD13889FBCE559693D3745B03C87909DBD179A93BDD77378BDDDC40A3DC43085BD0CA11FBCB20342BD99F0473D5F3F173D261D0ABD102B0CBD0E3039BDDB8227BD25071CBDAAB689BCD8F6293D784D89BD4CD9913CD61C99BD8F92EBBC9E3526BDF0711F3D2E41163D881F0CBC4F183FBD9F6B12BD7B3D92BD52B98CBBB7BA0B3D61388CBC7F65D43C4739FEBC1EFFDE3C7811B3BCEB36BC3CFD270C3E40E0203E5F82CC3D6AC4C83C31E5A83C129A61BD6B3194BCD34F04BD080AEC3CD01B97BD56AB823CA7F581BC75DAC0BDDA57B9BCCB023A3D62882BBDBC771A3D1C6B9C3D74550EBCF042AA3B4341E63C3B412ABDA5CA7ABDD278A03B4E5E2FBDF511DFBCE059B6BCE2747DBD7C2FF3BCE87A87BCF18C793DC23B48BC65046A3DF4E1E4BD6536C43943676C3D2AF3463CEA53E0BB3515FFBCF42C04BD8712CD3D4B924BBD8E21D9BDFC67C7BDA31FBB3C3E03B0BC719FBEBB51CE673D240D13BD20C997BCB9FE4BBC4306353DD2DE03BD5DD487BC0B032D3DDD3D1ABDFCEA68BE2F3023BD53B8D3BDC0F3DC3DFB09283E6624903D9698453DFBB598BD243DD13C10248ABC61EB323E9B99AA3D2942353ED6A84B3D3FBA9DBD92B186BC9FF2913DD6C5D83BB92FDC3D0248D73D15467EBCCF8931BC92491FBC00D1BB3D7C7F013E7F5C1F3E8303CD3DB362B93C1D72753D05DCB83C1C58163DDA35943D2A0C1F3CF10C9B3D594880BDBEA61D3DF529A2BDBDBA773D1C102BBC3FC2093D58FF273EE4C6843D6AE56F3B08DD8A3CCEC7B43DBE4D093D1F636FBD8AF6FABB05B758BC235933BD2599C1BC0E0367BD2A62B2BC5A19283D4691F13D464606BC3DBE7E3D30F194BCA468863CBDF8353C6B94A1BC2A2C753C527A2D3DF3C7243D9A601BBD1C7990BD7A8B1B3D58BE863C210401BD305A37BC0B11183D43B92F3DB5AE1A3CFE21253D2BC0833D8971DB3B54433C3DA7E5773DC767563D01A7113D69EFEEBD5967ADBD260854BD8A2FD4BCB3178ABD728A4ABD2D0BC7BB71DC70BD39B6543DE45C9BBD25E80E3D0FCC403D46D4883C78BA513D0B671B3D2A0DE3BCF008FFBA319F80BD9335EEBC42BA1EBC016F923CDACB88BD59C82B3D9A2577BCF5C1323DF80F4E3DA7474DBC147840BD83D1B8BC9D3DBA3CA1F4133D2D0565BD02DA95BDC06A93BD4386903C295D0D3DF5924F3DCB8CA4BC5DAB5C3C4C00C439E9D4B1BCEC5384BD418CA8BBC27A4DBD8EB1313C8045DFBB0F23D13A761E143D8BB3933C3076D73C9050463DDE7093BDF57EC73CBE90183D0A2469BC3948023C86E6B3BDE83986BC3B70B3BDBF1B08BECAB8E5BD39047BBD7DA9C0BCE1BB1BBDF690EEBC99D1053DB50512BD1E2F8ABD1E0FC53CD8EDA9BCA7FA34BD2381FFBD975918BED814D3BDF3FE6CBDBDE93EBD3ED730BB34F3103DEF29573C74A5443C2F2E633C449BA4BDFD73AABC822DEE3CB196BABDE71BC5BD5507E7BD650970BDA80C323E9566123E61420F3E9B1A0E3EFF3DB93D5F3C273E70AED33CF35C5EBDB7543DBD84336CBD2CE96FBD07F93FBE79A4A3BD6C6A743DF023593E27FF1DBD904E9DBC4C97AEBDFFEA03BD945E823DDF91983CBE8CA6BD54EF7CBD140B8BBD66F91CBD7DA88BBD4FEC273D38A92D3EC8DB793D55B5E8BD9B4B97BDCC0801BE8D7E86BD5DAEA73C571D46BD754378BC487D5C3D67046F3C499D06BEF7A603BE506E843DD78A8E3DDB5D93BDCF8E4DBD8F271C3CFD253FBEB4CA99BDE71428BB0B751CBC99C805BC350FFE3C6FA7063DC29F34BD0A810BBEABECDEBDD27442BCE04D183AEEEDA63DC9DB3B3D0E9105BE8E307CBD58BD80BD14DB28BD6D9C223DA096183C0A635B3D1605A43D2F20B9BD338B9CBCF236F93BE386D43D9956E93D9FA5543C128F20BEA94CB2BDC5B1B7BDE151713C4D90D13CDECED93CFA5CE2BC6084313D7D662C3DFD7FE43DB780C93DE92F903D1A8FB2BC202DACBDE032D5BD72E587BCE5A7ABBD8A1407BC21CF533D568589BD2DA4803DD0B219BD1E51E63DCE51C3BC9B894D3DDB2183BB66500BBE5B2D0FBEE5EC72BCD8695CBDF484D13C092B43BD5525943B0A6C413B8ABAB1BCDC40F43C4D2A433D8CB59FB929518FBDBFB9F8BD84063FBD91B1053DC8A5B43C8A738DBDA499C6BCE28F61BDE14775BC91FBF13C791A78BDAA6632BC0EB4F0BB6F3ECC3C438767BBD06BF2BC2C324B3D4CD72FBD9ABC4CBD49B9B7BC6B05CC3C50E04DBD6DFA253D65560FBD7812573C8297143DCF44AABDA4D3143D952921BD38B1C93C4B908C3B642409BD3B6272BDD3BB06BC75A1943CCC18E63CC17C133D6E0B0C3D18D7B3BD715D463DC28B9BBB7CDE47BD682D56BC5F41D43D6244FBBCB92FE9BC7339DABDA096F3BDF628423C5F729BBD542F36BC841A593D7100573D2365053D92CDD9BCBC2156BD6985633C59D23A3CE1C7223DF380CCBDD6E62ABE31F193BDC131B8BDE0C2DBBCA01273BD9FCD4B3D11E60E3D0C91993DB9E5003EF665053E9900C03DEEE162BC0B1F5E3D89E46A3D2A86823DDECB3BBD856698BDF5A865BDF4F3A5BD4BB77C3D8C81723D895FA03DC0038C3D8767963D8EA60C3DCB06243E110C593EE63E933D4197713DCB26773D473C80BD0F2A3ABD2441F1BB7E058E3DC3069EBCFCC826BE05B334BE164D29BEED41263C34AB9F3D595ABA3DBEC9EE3C45A447BC67253EBE2925E0BBE6FA20BD4C6433BD1BBFECBCCFD320BE86B631BEC9C2C9BDC0683CBEC5D308BEA6D344BDC1E207BBE2CC25BDA01A42BD8EAB11BE60170FBDD4469CBD455F5ABDFB518FBD2344F3BC7CF431BEC7F909BE2178B6BD49FD80BDD5ED823DDF9C483B95EA4F3DE49F3A3C8186BABCA66326BD4E7C173D1E5884BCC457473D63D8C93CFF47D6BD4FA821BE375734BE5ED12EBD1314E93CA952833C7073B63DB3ECF43D9DDA8D3DA11D253D1B8B4EBD919CDD3C2C7FC43B54CDA63CB5DA693D729D563C06D372BCDEBE893CCF17CCBC7BB2143D75F7A83D72B5AF3DDA4FE13D645FCD3A3E1C503C61624EBD1CB6FD3B564EC33D19F3ED3D237E0B3ED3D7863DA0B54D3C453DD7BBA3DD993BEA55063C9C54E9BCDC34AC3DB099BD3CDF50CF3B9B820CBDBF97893D35F0663D4EE57E3DBEE2AA3D6BB2DF3CAF4856BCCC3F4ABCE6DE4D3C098025BCDC3C4EBD94CD34BDCD3B293DD570E03CB279DDBC0BBE24BC49A1D6BCC8E7D33DE94CA9BCB023A73D087EDF3DD062AE3D16A8E93C2DC806BE3D8D97BD11298CBDE5C3123CA5D7A7BDE53883BD7884073C11C96C3AFEAD90BD4689833DF198863D8CF6033D5E08403D07A60DBD9C05AEBD61A89FBD91E394BDE5AC87BD334969BD8F596D3DC25BA3BD485B563D6272543D5C088A3A78F3CBBB01FF603CAABEDBBA608988BD351B89BD599B6F3D519C0DBDA70DEA3CBB428D3C8F9E39BDA02780BC26F7BBBCA648613DB7A139BC77C41BBCF4D3BDBD3688A1BD56E3A8BDFA1DBD3C5ECE73BDC47DB53C517CAA3C090F313B89CB01BDD902073D014083BD9143873C705C8EBD5815FCBDB14273BC68851CBDD582673DB9DC59BD21CF7D3D0FF53B3D5BCC8CBD60737F3C2BDB09BD4C0E853C4F542FBCF50F9CBD054C44BD1A9799BD1ADD08BD8A8C9BBDFE5734BD1CF50DBC78FA3BBDA6BC8B3D90E0E93C292637BD35FB6C3D11EC003CF3FB093C2E3C05BDCDCBFCBD4E71283D0BDF583D8F2ACABC3607F03C7FBF22BDA92EE03D416DD63DB4040A3E22A96C3CDA195EBDE748FABA6D7885BD7E8604BD38A89DBD973055BDCA04303E5438103C669A6C3DC9777DBDAF39B8BD3D24433B94EA0ABCB29F653D35EB033DE432653D8FE2CFBA232983BD606DC9BC30F7BABCF4E79B3DB039183DC1208DBD66209CBCB27F21BE79661BBE44AC38BD8E88743D179762BDE58F11BC162880BD59B6BA3C51298ABDE6DEBCBD8AAF8B3C3472F0B9AA62C63DFF6C943C43052CBDCF3CE7BCBCC886BDB500503DC5A7CDBB1C3C84BD082A7F3B51988DBDDF8B56BD72AFDFBD204701BD1005963DCAF442BDE62D313D3408D03BB3581FBD417547BD5F310ABD13210EBD621245BC9F3D3F3DF5A07C3D5E244EBCC5F4963C861BF6BCAB56593DB374943D69B6BFBC4962B4BD3FF878BDBF8F74BDECA65A3DBFCC9FBD714B7BBD08AAF3BC34A96B3CD82B35BD5D43603D367B8B3C188BB13DFED9C5BCD5305ABDE7C5F4BD555019BC4D6E0B3C809F8DBDC15EA5BD5134063D79D7ACBB5C32153C0EAE923C1E0882BD420BA4BC8B52F3BB187ED83A1219A0BC7D24D5BB6F8EE2BC58F0A3BD7A8566BC697C1C3DA971493CFD80BA3CE61C83BDFE6580BD86C74EBD152B24BC018807BDB79D223C7EDED9BC41623BBC32EB73BC2A1755BB4C72FDBCB9D99FBDEBA5DF3B669E3CBCE12C4BBDAE35A5BD59ACACBC200DA3BD7B97EABC5BE2363C65FD72BC8547073D7ED0573DB93AB0BC61D766BDC0364DBD1A50C63C2992B5BBBA88A83D0D21323B44C99C3C48035B3DA76A143D229BAB3AA86F5A3DA101C3BCE6281FBD8EB7843D2852533B97722A3C01CA8FBAEFFD1CBC3690B4BCB593483D268F793D860452BCC288D93D61599CBB246255BDE034B33C20973EBA83A721BD82051ABD841F29BD72040C3C20233ABDDBBA1C3DC98DB6BC3EC09B3DB148BA3DABB15E3C02C49A3D0DDE193DE341373C6396F9BDB7A5DA3C6C3C8D3CD12FFEBC6C87AA3CDB0C133D32A13A3D4C20F2BC2134BD3D1371A73D29C24F3E3E73E63DA4A3E63B273B8D3B697807BDA9E1ACBDDA7DFBBCE681F0BBB3ED01BD51F4D13C67049FBC0F99903C507D5A3D03B45B3BB94BF93D476E8FBCFB3845BC20BE6C39024294BDE6A95D3BAD7C043CB422B03CDF814FBC0B5C7E3D17614E3D7E7B533DE6CFA1BD680E8CBB551E60BDCFFE91BD19BC6B3D017A0A3E1F3C1C3E8284B9BC4EF297BBE604903D0FFF34BDB4C3B93CDA68B5BCE9D12BBD5817D1BD5AF4EE3C99BAB43DBD94673DD1D5CE3D9E20CE3D1AB0873D4C8AA63D7BEE1FBD22D5363DD6F2AD3C73913C3DA5E6D5BDA47EB1BD2C732A3DEB00BA3DD52FF13D22B7BC3CFFC94ABDC84A26BE9F52DBBDA6DCB1BCBF4C863DF69BACBB80B6A03D2B2149BD201562BD6A9DCF3D03FF153EF27AB5BC8BF79EBDF626883D9A90BABD6284C6BDC07F84BCA03ABA3CFA85853C1531AE3CCC98B53A08CD9B3DC378823D2820203E2FBB153EFC4BBA3CE53891BB32922E3DD4BF133DD2C8B13D9BBDA7BB8C65DA3D9092BA3C8E6C49BD98456B3DA1D6833DC80E4C3D99AAC03C3CF782BD0C464B3D84ECB6BCD666CDBCE828813A2AE4BB3CFB0FE23C83930EBDC11183BCA62B2A3B3F9729BD5287983CEC62603C6499F23B98700A3C5BDA1B3D2673663D8E0E073D9FB2303D5BB0C4BC36BAD13B0F1CBCBCA2C0013D146906BD1171043D6418B9BBA362D6BC9E2CCABC2E2483BC620611BD680DE13B7DE65DBC1FCBB53C2BD589BC286D0E3DF0EE02BD2C91913CC09649BD3ECAE03C79CE9B3DF68C5DBDF4943B3D614D80BCD70E9A3DDC8F01BD2DD3A03DDFDA963D34E6C63D3AC2033DE43AC43C3AB608BD398D853DF3BEE03B83C2723D71D81A3DE25F78BDBAA1813D80BDDEBA8DD5A63CC3AA2CBD1FDBFA3C25899FBCB6EE99BC5986723AA76D153D7A77C83C2B320A3C528F343DCB75723D67B12FBDE39896BC2D9951BCF7A5DCBC7E071BBDC1329ABC18298EBD6C656CBD2D663DBDF9CD83BD0B182DBD8832A1BCAF24B7BB4B55313D802009BC0A70FDBB38EDB93CE5A20F3EB38D6E3EA82A2D3E23259A3DB9B181BB23A6533D5465C7BCF8960C3BBB0BFEBC0E6F3BBDE8316A3DC37F163DBA6D3C3D55CADA3C67E815BEC8E683BDD811043EEC81163EAE14923DF748B8BDA83B28BADB23253DECD001BC586EA83D4359A2BC5B0AE5BC1F02183DD3F4E1BDE7F3DDBD1D0CEC3D8498973E2428DF3D2D534D3CFD7113BEAE728EBBF56964BD6FFA2CBD269856BC363C7BBCE1D5ABBD8BF723BD35E83DBE0E3334BE1587253EB27D1D3EFDACCC3D1F9AB8BC035413BD91CFCCBB4E4724BD4BF72E3A631FC0BD63A5DEBD411562BD1FB8AABD6668B6BD6C1840BE5390A93D8805B13D6BCE6DBDD4AD5FBDEA2B9FBD4ED75ABD4A380E3D669BDE3C54BFA83D5649F33C7D0C55BDD5407E3D4221503DC487B4BCCD78903CB024F63B6D5219BD656C433C5D784CBD12A5DCBC1C793CBC436E48BC221EDD3DA763003C32E8B6BCD61F7E3DD940053DD3563A3D88D05B3D8337A7BD35F333BD5CB5A0BCD0BA1FBA12628F3D204E863D1FF0C4BC9830643D387E983DE317663C73FBBB3D089CDE3DBEB0CEBC9B16ACBC655FB9BD369CA5BD8B191A3DFF777B3D59972ABC18E536BDB7CD5A3D48528A3CEACAC33CBC1F753D5E82D5BC2DE199BDB27C88BDE7019ABC34BA9DBD92E9E23B7E7E1E3D64157A3C0997453D410B403D23414ABD603EA93CD23EEC3DBBF7EE3D77C3983DD683EF3DE98FA73DB2BAEC3BE97927BCF5F284BD081E31BD858D2E3D863F8A3A9DCA033DC9B7AB3C650E25BD6575C93C8C938ABD556A3BBDB1437F3D817CD13CD007823D5D07D6BD286604BD7D08EB3C1B39383D7F3807BD1B9C17BDE18887BCB0CC17BD6307FD3C60E547BD6770A6BD6080B33C380896BDB7FDCCBC403C6CBD135032BD3E803F3CD1272ABC14F2BCBC3D4C6EBDBBCCCF3CB7837ABD9F8CA4BC7B4025BD10D1D8BC76CD8C3DC95C26BC5AA2853C12A75BBD64642D3C52D6E23A6FF856BDE39285BDDAE0093DC1B431BD64D5B4BC3D59DF3C3464C93CD8BFE93C802C6EBD260B79BDBE89DC3C0172813DF42583BDCA263B3DBE22B03CFF75E73B6766C8BBDFF3FEBBA69DF3BC99FED2BCB2B199BC6B1444BD46AC1D3C2F84D43D5DE9113BB78CA3BC646A923CBBAF2F3DB1050E3CC6E628BDAB18DDBC655744BDCF7CBA3DE07EAB3D274A1D3D94B04EBCFC8BD93B926951BDA639A8BD876A343D31D34CBD4033E03C4CB429BDA0778F3D7D1F87BD92CA753D29DBCF3DCAB6143DFC04373D8699ADBC19DB68BD318C71BDA329E13A80BA6CBC3B5ECABCA83AF4BC6BAD853D8B3DBB3C0A33ECBCF7F63A3D0580E8BCBFB5B3BCB2B796BC1AD9453D04B4F23D2EDF203E445C173E11FB1B3CDCB0A63C6E3B8D3D015A613D0CB0723D3E8B86BB6BB3383DFF80153D551A0DBD675DAE3D4BEAC43D497CE23DA4DB393E4E72223E4B31CA3DCDB8B73ADF1BC8BBF9BF67BD36FD56BDC7B6123C3CDD943DCA139FBCE40CDEBCF4EEBABD192B7FBB8BBC933C211D433ED04C0A3EDE8CE6BCBD88D5BC183C373DD53CBE3C741F31BD43967B3D5C993B3D486214BD0E75333C0D7702BEF6015EBC97C64D3DDA40B63DB4605FBC64411CBDA789843D96923DBA070F8ABDAD9A78BD357430BCF260243DA997DEBCFD985FBDFC445A3C74F2A2BD4AFEA1BDBF4997BD4C83EEBD3E9C713BC34B00BD34E819BD91D4B5BD187359BDFD408ABCD57A593D9F53953D7D95753D3E0215BD3F1BC7BD03D1C9BCD912C6BC47B477BD47118BBD63BDC13B957AADBD256CA8BD397C553D3B2358BC8C2244BDEC062ABC1744983DC58E34BD4F80B03D9BEAE93D5EC33C3D9656183D3B2A973C06C5343C9EAA4BBD505C273D8425113D1BAD3E3D7ED9A4BA1992DFBBCC4A06BD9A59CABC3CF5863A6CD28CBC628C1F3DD781B43DFD264C3C7C8C90BC1C98C5BCAD85863D9E1F513DE14C6FBDC611333D6BC055BCCAD41DBDAD33033D6DAB2A3D64327B3D0ACB15BC0DD0AD3CF0EA99B72855543D62A23EBDC16F88BD458DCB3C449E853C43D7093DD33A3D3DA34A11BC10B04CBDB5B978BC77D4DE3B4A373EBDDCFF8B3CA403543D83B59ABB7F9B0B3D21FF223DD4A0983D761C943B64FEAABBA0145B3CADFA8BBCF9E8953D127EFF3C84A72DBDCBBBEEBCFE0331BCA53C323D0275DD3C54C8743DD532833DA802D9BBFAAA023B650E903D01A5C6BB2C0D2B3DFCB03EBD9651DC3BD2ABD83C7D7395BD7B9BDBBCCD701D3B7ED600BD95BBA63D27FF2C3C226A083D868C84BDFC2C39BD44AA17BD9913A9BC03CA6CBD16FF133B674DF13C3379F9BC234492BB56C16F3CB57D9FBC62B948BD0F71853D4D2A23BC8F603D3D404A71BD228A18BDCB1D0BBD1B0DB23C7F947F3D0CD10E3DCF6FF8BD2469BCBC3C7685BD8C3569BD61B84C3D73F0AE3DEA963C3D9320773C308BE8BA513E21BD1C910A3CEC71193DD3C9063C599CE93D78E718BD9D07BDBCC41F213D845D8A3D24A74E3D1D9A703D84176EBD7E238D3D4839833D45B48F3DCA00C93DEC279C3D3928CA3DB022C53DBA5D4F3B402531BCBDA576BD8EEDCB3C3C15C83D5F2285BCAD83DABC78B9CCB846B6793D05959B3D3919973D8B10173D053C1B3CFAA9ABBB71B538BC2937D3BC59648A3CC6955CBDCE6C603CA4858BBCB70B733D175C84BDC58633BD5374073D487577BB7F7C873BCEC4D73CD4E510BBF0B5A8BC79641B3CE4D3833DF62A8FBCA80BEE3CEDAC6ABD944045BDEBFBF7BC427CD13CD2F934BDB23911BD0E69CC3DE01F983D4EA353BB205F38BA3EFA363DB56D953D1341883D57B490BC0C291A3D19E5A53C86850D3C541787BDAE1E2F3DFD08B93C9B5C853D36199D3D28CBE33D0C1DE73DA5844D3D00FFB13CF34B68BD7059ABBC9CC95FBD8BAE833D7984AB3C0A0A64BDF21D23BD9A1E4CBD6CF3213D488D883D2052FD3D7415C83DB4FE7ABDF458F93BA22727BD361304BCAF1FA2BC31E1DA3C94A89C3DD42F8A3D7E1628BD3988223D2127E2BC85010A3C08346FBC2C8B6FBD5E3CE5BC400517BC52B566BDD5502A3D8C2C7CBBC461C13C5DB259BD6B83813CDD1289BCAD9D62BD1B6F1BBB4B238FBD5FFF81BD89B0F5BCCFC1703DBB0691BC073600BCAE3AA03C1CC09A3DE090983D032121BDCE2184BCBDF8A4BD96712BBDD83A003D3453A7BD27EC84BD3FF16F3C05B19FBD15B737BDD58992BD3661A3BD857009BD62E4473B79C34CBDFF1E48BD57AF01BDCCE905BD72639F3D2629663D2B7F43BC96E831BC693A033ECD168D3DF204223C34F08B3D6C56C8BCC9DC03BC7D9EB2BD7ABEA7BD697AAFBD69150D3D894DD73D178FD43C9AD2AF3D59D5273E603CF83D430EBC3D2A1C693D07561C3DEB9F5F3D4245013DED6BAFBD99560B3C6C3F4FBDB099923D00421CBD921CCCBDD8D13DBD6569F0BD071FB8BD835A5DBD84D534BCD2D52CBD7C0CEE3C299923BDB8CFF83CDFAB9E3B63A833BD5452BF3A1AB735BC6F6F3BBDE0D502BD32ECA8BDF4CAABBD79012FBE68C895BD3DCBA3BD973BD9BAAED6B63CD2F906BDBB29253DA989C4BCD1E7A03CF11016BDE49FF8BD36C239BC01704C3D6E18D9BCCB2D0FBE9E5504BE95B052BC488FA6BDB872AC3A538E563DA67E7CBDCDCFECBD15EE42BCCABF7FBDB17072BA11FBC43D9A95063E381F393DEB09C9BD8C6C053CEE1A9CBD18204DBDB14DE43BCFB761BC7464443D0BBEADBD5F91D2BDF2B936BDB62C943C6A8BCA3DFC8D1B3E1A86443D5C3C173CEAEEBFBCA5C96ABCB37C87BBEDFF25BD9AF9A6BC417D8D3C887430BD1B499ABCF1FCDABDAFC52D3DE4E5093EC1D78F3DE4B47FBA4601F63BC9B9963D1D27CA3DA80B653D30E54DBD0155A9BD76C4C3BC6EC1EA3CCE6E7D3D4658B73D520D80BB58AB0B3E44CDD73D021D813D79CEB03D1581113E34FB243D3522D13C21C4293CFE0EFB39CA83893B03C6883D08FB643D1F961C3ED13B513D6727083E7741A73DB7B0B33D8B70153E5BBAAA3DB4FE023E4208863D0D74543CF9B59CBC00F35F3DDB6A17BD855DA83DC6EB133D4938AD3BD903BD3C74BCB6BB7BA4343D1D96B73D07532DBCD94D883DF99470BCC037263CF70F80BDF78D3F3D8F1455BCF252ECBDB04E26BDA35EB0BDF3657FBDA7F264BDBF212CBDB94DC0BD03BBE63C4194A63C2912B0BC5682A0BD118183BD2F8551BD386ED33C6CDA9CBDCE179BBD9B80ACBD5789F2BD58A9FFBCC4AAECBC5B92D6BD37EBE73C27CD6ABCFB6E70BD2A0F3EBCBCB3BE3CC688F03CC7A008BDE4E99F3D0A9A823D62BE913D9AFA823B55E6D53B59E940BD681F973D058B68BB1E112ABC06C433BC6BA81EBD9D6453BDF0C2B03B89D551BDCF8FFABC0969563D611CBF3C50758DBD4D3905BD3A2238BDCD3FF93B603561BCBC3E073DA964D13CCAF4BA3C0788603DAAF4083D9E718CBD329C663D12365DBD2065513D0514233D1B4BC83DB31D8F3CF0872FBAB8C3B0BCB5D47B3DD9122CBD15535E3DC87D5BBD41C6E43CB7EF88BD7D3371BD54A0ABBBB15D4E3B92527CBC8C60E8BC8329CABC29A89B3CF924BA3CEB85FA3C45EB54BD7BDEC0BC7050143D3E39613DEF4C043DF8528CBC4ED6373CCE0616BA70A740BC7A7D04BDC6F7203CCF52BA3A60DC453C86C6333CC0FC743DEC6789BCF2A97C3C5D23833A902B2BBDD6AEE43CF66AAE3D26D6913D43C3863D5CC4B83CCC29C1BD1FB0943C75C5D83C6978DD3CC23ED53D2097193DBC318A3D9FF255BD771DD43C3556A3BD77283BBD96DCE9BC947BAD3D9E65A23D0F620B3D58CB4EBD86060EBC38FB893C3A03F43C8C65B03CEE10E2BCE58B763DE46DA3BDB50DADBCF2C219BE8F3CF0BD633F8F3D4E6A093E58029DBCE799C9BDC2A0F1BC6EB74BBBEB517E3D675F7E3D26DD84BC68B7CC3CC3EB90BD29E9CF3C6DF82EBCA1D7DB3D29BF9A3CA8B0DE3C79DA88BD17D2D9BC1DA78EBCB08892BD17E229BDE2D4E1BCAB8422BDFE7252B93CE348BD5104863C620DEC3D14550B3CF10231BACFE10CBC59A3E1BDDAF1A6BD818C80BD442D953C9AD781BD4A6C863CCAD39F3D3154FFBAEBA22E3DEB63A23DD83225BDB77F193C2261593C685800BC233343BDED1FA53DDD443ABD682B8D3DB5FA5DBDE22F563C4639893D5240E2BBE8248DBDD6C2CBBCAB5A453D346B9DBC6E56983DFE359C3D7411E13DC95F003DB64A583DE8A35B3CBF964F3D8B73753C9CFF8B3D3386983D9EE2A1BD1AA814BCE2D6DEBB55540EBDAAB33BBCCBB5433DB2A2C23B5B30C83D57D2703DA53D2D3DF4142ABDEB5F9A3DC1F8723D2007BC3BF2DA59BD75D17ABCAFB2403D43DE5DBDF49E733C521540BDF1271DBC13ED033D9680373D2A6605BD47042DBDECBC683C64B1CDBB993B5EBD8FA4C2BC616984BDC61F9D3BFE8B383D822974BCB20E043C0AE0983CBD4205BD131D6B3DF8EAB43B3F25273DA1093EBD05E35A3CD37584BDC51659BC4FC3BA3C6CF81CBDB5D21EBD7D8D6DBD1ED329BDB151FF3C6C3E9B3CB4AA80BC99F1F83CB5AD41BD81A052BD520084BC23E8EFBCDDA08ABB4423683B0CC59DBDFDEB12BD2CD68EBCDB64DDBC45782C3D7288803C16DA223C93C9BFBCF0B1703D226183BDC3431EBDD9B180BDC0854D3C8F6A56BD9ECEC5BB2A248BBDCAC193BDC39088BC56D8303D304D273DEBA537BDB08992BC99DE70BDF4469CBA543517BD56343BBD0BAC693CBC3CE83C2468C53CB0DD5C3D81269F3D848AA53D4C26C83DA790A5BC62AD453D23372BBD909B12BD363F7DBDBD3D6CBD867B40BDC02C173CB92E663D92F4923D6ECDEB3DFF0B4EBC167FC03C2FC19C3D846EA63CBCF69B3C3CAB0D3E9BF47ABD5D4261BDC02C1ABDFE79843D71FA703D065AED3BD616F43C5944F8BD71CE15BE2DB697BDC930EDBC06E2B93C462C083E40F4743E0A3A493D543D6C3D3789D5BB7C1940BDDC44493BD1D4013DF495DCBB886C0FBCE80FF9BD17575E3DD592153D74AE8DBCDF252FBD45129E3D68402F3D970F16BDDADA21BD8B5DA5BD8987C2BC4305D13C25B8043E08B60F3E7BD7A73C4E5FCC3C655A1A3DC2D0093DD09E2FB95D4F163D82CA4DBD60F7E33BD3A62F3B34079A3BC632CEBDCA69E2BD1854953D6225093E9233123EFDDEA3BD416EDDBDFD3830BBD210EB3BB60F0CBDF799E1BB007E8C3D6BDA86BD321433BDD41280BB17DAB9BB86B2B4BCF57D893D3849A33C12580C3CB99D1FBBC33327BD7B36C1BD513DE7BDB346D9BA1F2068BDF580913C43C39EBD939D2B3C87E48DBDA134983C3BD8883DF8D8053E9314EE3D612306BC5BF646BCA8B4A9BD0904C73CB79F643DA412FFBC9E1EFD3CA16FBFBCA7BDC73C3F27533D217D55BD1464B7BCCFDD49BD4C3249BD2672583D263E933C99B95DBD025F963C9DCA5E3D067B41BD2B22F63C8E2807BD96E6823C1DD056BDD13914BC6434283DA9720FBDA82488BB5E7C863D8FB6CABCFBFE643DD0AE8F3C7286E43C5361023DC531D8BCABB976BDF90E77BD1ED372BD989F14BDA5F1A23CF7C062BD8DFA4BBD4CEBBA3C09F164BC6999003DA5D52E3C72AC2FBB0F8771BD7C79D43C009A953CCC9125BD1A13AC3CC6C3693DD499EA3AE3E92D3C127509BBF08D693CDFB820BDC0ED903C81BA4ABD5B7669BDC861733DE4CC573D1FBA843DCE4333BDC99E743D42D080BD29121DBD31EB3E3C1EE9293DF2B08EBD9C1B3C3D106A38BBAB39A23CCDFAADBB421A893DA4BD2D3A26A2F43BF51ED4BC5EFB1EBD8B96393D1FFEC8BC3B3692BC61C7A03C6F2486BD30FBEE3C4D272A3D193A723D37739A3ABD2930BD54E64B3DAC18293D5C20863DCAEA6DBDF0A030BDFBEB8EBD14373EBDB3CC823D668D8BBDBECF033D337AD238AC269E3DD72AA03D6874863C7A41F0BC63071B3DAB30093D3DE5ADBCB1A179BD35B0843C3EDC04BC93EBEEBC7BD68F3C9F1D763DFEF968BDD6A6443DE0CA5BBB685CD2BBBDDC823D1CB7993A805206BD762182BCF8D4F0BB45F90ABDA0F222BD8411EC3C7C7F90BD9C2CA2BCF9CE4B3D6734F2BBDE09B6BC00B9C2BCBBDA98BCAA8F56BDB18780BD066C4CBB1780D93CFB96693DA490E2BB971A4DBD7CB5113DA93679BD9403A53CB5301D3DE5C83FBCF7A8133D24117DBD8C04E8BC7F65203D2FC4A13DF15D513D875B1C3C86768BBDAADD20BC360C1EBD3D8F2CBD09D0BFBCBD169FBC1A55723DF30982BDA0CF2E3D0658DF3CB43D36BDEC9AEC3A6F193EBD949B903C2D46083DE2B792BC1B698E3DC23D15BDF4AD50BC765131BBAA844EBD0F5C74BCEDD13EBD5C81C03B7E99AB3BD40381BDCE09773D8CAE683C69B49F3D03B46E3CD3E2E7BC087FDFBC92B530BC7A4685BC789C873C2EF754BC2B1E1CBDF33EC73CA7678A3DA56F8CBCFE4D4A3C56CC67BD807755BD06929BBDB0EF17BD0122173D9F32793DAA9A8C3D4FDCDD3B5F741ABDC982B8BB2A33DF3C6B31173DD442A5BC582487BCCD9C86BDC7FCBF3CD9ABFF3BE5314FBDC293203C4631303CC9A953BD66A18B3D0FB128BD6D44083DB7D3C9BC3D383CBD3F3BB8BCD660BEBA4E8875BC98FD163D3D9984BD9E792DBD7CE98EBC3DDF67BD69231BBDED7282BDE9610A3DE571EFBC5996443D0B3A8A3DC45B25BDB738813D2BE9FF391991983D08E90F3DE1EE363D8367FCBBADD9BB3C0BFB9E3A595BDC3CE79C8F3C13B239BDC4718F3D8C7C43BD9441933D994E1CBD9C0B183D8E32983D05E0F9BC5C69523B4C62F83DE4ED3EBBD476783DFE4E5A3D556A27BD939E18BDE6FD79BDE70BF6BB869007BC0B1BCA3D563016BD73919DBD6976F1BB97C8C1BBF8E6843D54B37B3D4EB90A3C2ACF4A3D984B9E3D2625A13C1CB7603D36C0A23DC3EC9DBC9C02103E4109C73D2CF6093D136E883D7C48943D00C2C9BC989188BD2A99F93C0568F23D703B4E3D71D647BC7ED714BC0DFE173D037E723DE714D33D9E3F983D6CF1A63C8F3700BE940A0ABEE3B27FBD993A8D3D2EF6663D17733E3D43FDDBBB1933E7BCFA0C063DB93235BD83C3183D4741E63D123B893B21C2B53D6E73F1BD2253783D379D2D3D2C128B3CEF4331BDF6D3F03B4F4711BC0C77823C48AA963D9B8F633D4DFAF73C434D07BD98F10D3E9A7BE93DD650293D7629103E6DA09E3C2E1A13BDAB0F07BDAA08EA3C671634BD650EA83BF2DCA93C3DE264BD3776BBBC07B499BD074C883DF80FA33D3A16F33DB337BD3DC336623D3031AC3BE525A7BD9E51B73C597A66BDF9A644BB6D7D63BC189402BBE6CAE9BC5469003B9A51C03DB146083EC547043E5E0CBE3D67EF583D7CF5063D3CFD10B933A8193C5E164DBAD928903D255E0E3DBA55143D670AC73D2E30BBBCC8E995BCF4101BBDB34ACE3B1B70EE3DF5FFB33C7457203D2AFD263D9C4B373C90373C3DB331B5BCDBA237BD0CEFA33C8FCFC2BCAE44A4BB6CA63DBD0CD3653D44CF0F3DC028853DB8110E3D38DD2C3D579F3FBC8676E43CC1B33ABD48851ABBE95BED3B12F398BD95F332BD3AF5A5BDB5CD823C90B59AB9139FA93DA2A711BC88620ABC612A643D6640333D149FDFBCFAF5813DE133663D2EEF6A3A58970F3D2A494B3D0CC63C3C2AAE873D85DC8E3DC3111E3C7B4BC2BC49CFA3BC42DAA63CEB4E1ABD06F56C3D2FEFD1BC6FE3873D73F23BBDE48DB7BC41F0593DE34FF6BBF2CD513D143D2E3DE90D2B3DB399FFBC4D3A1E3DB55B60BD72C42FBD0ED852BC9FAFC8BC7728423D5A2268BD68DD2EBDDE5588B9435599BDE7259ABD9FEA1A3D93144DBC670695BDA2A28ABDB1E2873DC1E30EBD2080213D055626BD112D87BD70BD02BD5B0A0C3DC2AC46BDDD3CFA3C2AA83DBC8C92D13C69EBDEBCA2A603BD2B35B4BC41E934BD9FCD7CBDA439233D91F2283D0924043D2BDB673D0635EDBCAB62173DECBA80BD78808CBCF9A15DBD89BFBBBD3D3D993C3CF3A7BBB5A6433D69E31C3D6DF786BA4B3E873DF93B19BDFDCB963CE62A86BD21CC34BC39F8DCBCE15E11BC9FCB19BE4D1E08BE591996BDFD1DDEBBE6552A3DA1A107BDA4CEA6BD10DA613DD925883DC5EBF73CB40D19BD14AE0CBB589FA8BCF06BA9BD24B6E5BD5BD7403CDD4BF03DB5373A3DCFC5983D19DBDE3C23A240BDEDB996BC2574593DE5B8FFBC9DBED73C3D3957BD78479ABC8B5C04BEE5E8B4BD3116C43D7C24143E2FB9983D7AA369BD8A044DBCE9BB633C025292BA6CAF9CBB652388BD9C86C23CEC39ACBB3688323C67A6EEBCB67E883DCFAE123D0ECF9E3D3831D2BC06CD02BE50D23F3CA2F1C6BCF16997BD10E6F33BB84B6DBCAEC8A63C794B76BD3135C7BDB25F9F3D0F0CCD3DF0736DBCE171CD3DF29A6ABDD8BF0CBDA59A203D94E90DBBB9A8703CA3517BBD84DD4FBCEC74063DDF9A96BDFB97543CE4A1183A3EF2C43D0D3C3F3D790295BD15E8C7BC6374BABD973DF93CD86270BDF214D63C50E9903CA38C6A3D9246F83BF24F7DBDCD8A7BBDB1488C3D3434133EB31498BDD9158FBD75E1B6BD4FFF3DBDAE5EA43BECBCFE3C846FE83977FD5B3B3E7E283C38EE273D69D83C3D1FFE30BC1DDCEF3D09C58B3DE32B1DBE86B71BBEA9681FBDA79579BDC431DDBC6233253C8F776D3C754D4ABDACF636BD65FC023DAF41803D93BFA53D02776E3D0F0303BD94BEB0BD35A294BCF5CF983C56EA603C8ABA953B12C990BD8FD9193B1A2561BD1689733D9B2C623D9162B83CDC9E4F3D09D683BD78BE83BD7F343EBD3B26453C87931C3DB9ECAFBC82910DBC43F2AE3C4C75D93B3E355F3CF713623DE7961EBDEBE093BD3804023DE2C0603DE47F493D05D3BFBC8858B9BC8C0268BC94C739BD9B8085BDC64BCBBAC38C72BC8219E4BCB9994CBDEBB096BD6E2BA23C8D5887BC500015BD3246FC3C6A9A99BC48885E3BF659323D691E213C374AB6BC22C46C3CDABA583CA1BC91BB8E3BB9BD35EE793C91F48EBD8999FCBB0A7D88BD2EC06ABDA47163BDFB62BBBD3A9CB93CA71276BDDA13A6BDBDE59DBB1B32323D7C82D7BC4D941A3DD8D137BDC40654BCB9725ABD111819BB73FC9BBD100704BEAE6BF5BDE47C4CBBF18A50BD39FC043D31E56B3D90D3303D45AE8DBCD855A8BD1577FB3CDD83633D4579BE3D8097203C249924BDE28885BD2A517EBDA2D5E9BCD8533E3DB6C1BF3DEB149C3D2A5768BBA25CB9BDFE86B8BD356878BD81CF63BCAC233A3DC930F63CF874883CB3EB23BEDE5CA6BDB4ED223C90E6A13DB154003EA9B27A3DAF987F3D849157BD02B1BD3B56B9003DBC38C03DB9CC483EDE3C353EC2CAD63D9EF024BC04C3E33D29B9053C757A51BD64A905BDF3C096BD9F5814BD6B02B5BD2F06F2BCE966B33D55EE593EAB422B3EC8480F3E0BDE1A3B27CE15BDF13B3C3E5ECB7C3D58F523BDACBD8EBD7A6F9FBDF41A88BC0A811EBC1E5F26BC9667933D3A71723C00C7163CEC1890BDA04317BC5015083EDD983C3E4BA39F3DCA237F3D59DF533D2DA2CBBBD6A59FBD7B2026BDC2B2BEBD4E749FBB4E20263D6318E43C020EAF3C4719DA3D2B7F2F3E0CACFB3D6E515EBDE651AEBB32294FBCD43485BAC77C51BDED7D813CFA9917BDA6501DBE135497BD5B6E9BBDF194EABD71B0CD3CDC971A3D6E7C8FBD849C1BBDC47F8FBD8540D3BD81BFA5BD288E36391317CBBC92E2E2BD017709BE2EFC12BEE09B52BEA78222BE5D27E8BC3F68243D223C703CBB6F34BD6A278DBD18252DBC7BB0ECBC67CC64BD6CE7683CECCCC8BD471E2ABDE6B585BD7E3FE0BA790861BDA6CCBABCEF4BD83DBD60963C0F2A13BD0A4E22BC1AEE353D8F108FBD142C89BBE718B8BD240E31BDFF8035BD2E947ABC98E84A3886D4D9BC9CCF3E3D4B78B53DE958893DC4A26E3DA51F0EBD7C1F7C3CFA3B3EBB0446113D6BF2883CB81E543D9690943CB51987BD4C972D3D85E2CABB5D65E53B4E71EF3CA096FABB5D1A23BD382DA73A7D19073C9911013C894149BD07455EBDBECC89BD3C6583BD991FEEBC4DC73CBD07D32F3D20A330BDC32926BD11BB65BDD9BF49BD9CF0FB3CA79D503DCF9F3E3DCBCA6CBD838E03BDE66B8EBDD3D0DC3C9798213D7A69CFBDCFAAC7BCF4E0F4BDF26C21BEBA373FBD84CA0ABE0918C4BD4AB7D23CD3599CBD80A75CBDB32BE7BC4E01443D53D2C13C279C683C9B975FBDDA6882BDFC935E3C5869E73C1ADDA93C2D1904BCAB788DBDCF87EEB905496EBD662E79BC6241803D0C48CFBBCCD9113D6E075D3DB547E63DC65CE83D7432243D17A9763D9472A83D7EC8183E2C86AE3D3E59003E9A96A23D3B230ABD30B3A1BD130B25BBCC8FA4BCEF777A3D236F253EA403F23D5D70373E71713FBCF053393D41962D3E2589D13D38A4073E5680BD3D9732963DF8C3D43CF8CDBFBAC71B233D68646FBC61B1383E3C86C93D2B46783DEFB623BE54F988BC14B9493D0AD62A3D8B964A3D82BAA93D421A7C3DA4F01FBD23E2D43C4E11603D19A7773D0F7B3B3DF431A93DA74C933C16ECC0BDC21F8FBD6A9AF13D1C16863DF86032BBA2FDF3BD384A973C738C493D447FB8BB4F07253C966CB5BDAC1A333CD7FB03BEBD0AFEBC82D3F1BDFAB2F73B31FAD33C8A6376BD028C5FBD47F7A2BD6807363D0442043DCE9163BDA352B1BCADD8CB3C35DFCFBDE14E0B3DDAEF3ABDCB2F97BC6FDFB03D4EF20FBDC209D1BD1823EDBD2634C1BCF5DCB8BB1B77183CFCA699BCB543C33DEE871C3D1204C0BB8BDD483DC6ED63BBE76BEF3C96F5853CCCBEA1BDAD5187BDBAD4203DF3DE873D2792773D310398BD5BCB1F3D2EBC1B3CF46A8BBABE58BF3A985365BC1450AC3B5CE9A93A4EF897BDBD039FBD00E685BC444BD03CBF811A3DDFC82DBDE07E803D0A386BBCCEDA6CBD8CCB53BD23625A3D72A87D3D8A2A963D90F4B43C5C6AE53B30335E3C7C17843DD042A13C8C782C3D402231BDABFF62BD3FF8813C8B4771BDAD4997BD233B8F3D31E5973D201FD73DD3D7473D7BE4F93CA8BE753D15A7CCBCADD9733C66639BBD2D96343D042D9CBD0B649CBD969B18BDD509733D7A9520BD98DD773CF74AC63D37B7953DB4242BBCCD3085BC6886533B106299BDC3AF9FBD3D51173D6D2A4D3D12AC93BC065389BD55C60B3D9EE5FC3C0DAFEC3C3A307B3C86B8C23CD3C62FBDD07D7F3D555740BCF7C916BB541DC9BC6E79B43CCF3A4BBDCDFF0E3D2A1F36BDCFF48EBDCFBE67BCE430893D68BE983D110D30BD031ED33DF64E6DBC3ED0E43D85957F3CE0A24EBD9DB881BD2803CA3C211B1E3C6733F03CF9067BBDF27DB4BB3AB5653D9FEC60BB2F9618BD4618A2BDC46C4EBD3B0BB43B1FB45C3D75CE983DCAD4C2BAE3E2A1BCCD7AA83C05CC9FBD2789493DBF0480BDADE395BD783147BD1C6485BA078EDE3B66AD883CDB02DABD2A8FF6BC9F30DFBDCE66F1BA95960E3DF886003C86838DBDEF8D1BBD58F8F83C0F5B183D5BE6ABBCC17AB33D327F7FBDD780DFBDB58E8BBD2B6649BDB3A438BE7F02AEBD58DBE53CE187A8BCD9137B3C2528BABCDA75463DD5EC9F3D4A37303C27725ABC165E38BC221ACFB9F056C9BCC5C3BFBD8C8037BDA6B3FDBB5D23043C9B5CEBBC913A833CAEC27BBDCC9012BDC0954BBDC26019BE5A040ABDBB26CD3DA039B83D73FAA93D2ABF743D1197FBBA84B6BD3CF974AFBC682898BDAD070BBC38E1CF3DEA6A873DEED9BA3C1E0830BC89C8073EE3F2373EC9E7613D3CE5A23DF818FE3C16EF5A3DC598AABCAB3433BD63594D3C3131913B82BF1ABD77C3603D64AAC03DD6CCED3D1276673EAD0D973D2B331CBDF94B0A3D8A563B3D78464ABC9BC2533B77E47F3D06E2E4BCF8C3C8BD0F1D04BDBE3A303D7C28863DA53A823D2D733A3D52F3BEBB1A2981BDF60AA8BD18E627BD62E2C6BB3CC9ED3CD8B8C6BC74BCE0BCE0791BBC00B7DDBDDCC0C9BD1FC3B93ABDFACC3D1B78833CE43CB83D39F08D3D7CE1E33C2073243C18EC92BCA4CA96BD9A5FB1BCAC58483D29F873BD84E4D8BB78217ABD7D770DBDA77185BDC82CD7BDB112F4BD83C09BBD774371BC115E623C98E7983CE03F3E3DB1C66F3C83ACA2BD681D72BD8F74DEBCAC0E52BD62691E3B2E768BBD7803D5BB143FC4BC37F8313D37BA06BD1091863DDA0724BD51812C3DEACCAEBCFBBD5ABD4515EF3BEA598EBDA1F0083DE950CEBCEB3355BCA6CA7BBC470CE1BCE2022B3DF084803D2CC4753C951033BC33D056BD64F0393DFDC6EDBCA83E7BBD81B0373DB03F5BBDFFC960BB3B28B1BCA165013D179971BDDBB741BD6F6698BDED75A9BCBF3396BD20CB083D9405183D14AAFA3C44273D3DFEED40BD516B223AA0D84AB9D858C6BC87D77E3C4ACE76BBCBB292BD7E9DCCBA82C0F2BCFD220BBCC58435BC296B4EBCF1DF353C1B774C3DBCDAA03D653865BD1A9A553D5AE39F3DFD79CD3DD0D98B3D8A92913CF891583CAEE39ABB0C294EBD6D6B22BD0A2C66BD9A87E0BCF90CB33DE65782BC57B6E1BC2302583D9C6E543DA4058D3D602DA1BC96E4FA3C680639BC49BF9CBD6496003D6972FEBCEC953EBDFA61963C09BC863C2CC2903DEDA0AE3DE6350C3B1D4EF5BBF364123E4958393C41CFFF3CA821993D642FD23D4CD5263DA00E99BC533A833BA2E31E3CFAEF093DD41098BB60D5593DA27115BE8731FA3D7FB5223E5FB5003C65A4453D86D3A43A52131F3AF365693DDD038EBD8178823D227B7A3C79E2823D10CE9CBC2D899BBCCE8CD2BD141DCA3D7C5C113E4DBA763DBC487BBD5311AD3C847CC4BB9B7FB93CDD6713BD41A785BD35A18DBD0A3D44BC1E7BD5BDFEA5F7BD90BEE6BDFDFB703DD6F29E3D58321E3C555923BD16FAA7BD1B06D0BDD363193CDF159B3C1E54D73C003D0CBD060CF5BCBA70A8BDAAFB61BD64FECDBD129A10BD933AC3BDC297CABD7FECBEBC38B08CBC403B783DE86ECABC2463823DE240B039A951213D88D8AC3D3E73D7BCB3A7443DAE108B3D133527BD2143EABDBAB3BCBC8432123EA9D2053E0F9D313DC3D892BD404918BDEE7D8DBDB78A103DBE41713D55DB8E3DFDCECE3DF5CC9D3D9360DDBC03C98B3DB540D83DC498EA3D09AFAE3D1AFC1DBD8F5CFC3C44280F3D09AB9A3C978A40BCCA32D93C005E453CCEA4333D837762BC60C2053EC231403E2855133EE347A53D302CFABC80D0B03B773BDB3C5001963B8ED14CBDF9C683BDD8F70E3DBB219F3D2635003964E6793D5213EF3CF6D1983DC616953D110809BD1CE4E73B0F159EBCA602C6BC0C54C4BA84012C3D5BB6273DC1942BBD60E2593D0BA020BDAC5DE13C851D5F3DE34C8C3C8CEE2A3CA8201D3DC529823DEE06E2BC2B95DA3C6B1CDBBCB4A765BD9FE99F3CE0560E3D6E6980BD04EE61BD27A158BD36F4B13B57D053BD8E33C7BC420F83BDED86063D5A880A3D736804BD1C14573D491AD93C51F85EBD23D2953D7599833DF1EA4D3CF4C7DBBCBDADCFBD80FDBDBC65601C3DFFEA99BDD734E7BC09FD6A3C223E70BD5EF83B3DB3DE853D06418D3DC86953BCEAE8DFBD3DED6ABD16C106BB37D75A3D6630D73D2220433D6C24EC3D7700DF3D3CA339BC6AE142BD4F0002BD5C6255BD49818FBCFED5CABD4AC19BBD8FF94FBD2468A93DC451163DEC8FD83B50DA40BDC81BAD3C4B82F33CBE85B33D48824E3D0780B5BC7E89BDBB6DFD0E3DEC23603B8B3949BDD09F673DDE9C083E7C2BD0BB5FA3ABBDBCE092BD26DCDCBBCBE9E7BCD121F73DA7A74D3EA5179D3D7E9B9B3DE82268BB0943903DF85E703DB8A5B03D9CE4FB3D609BB33D9D0DB6BDC1FC01BE2683583DE80C2E3D920D8F3D7865A73D33F6E0BC110D84BD1E5DE1BCCF148C3D8F55A13DB6AE2B3D076F0D3E51F3CF3D5D48AFBD78D98CBDE2C4A8BDAFF9D9BC3068C63DA581623D45E9833B824B023D28EC7BBC9F49433D262C8BBCC26911BB081DC03D57B6963B745FD5BD5393AFBDE03CDEBD71E485BD87EDCC3D7C77B63D0C38FB3C44D2AF3BAB934ABB5B5BAABD04E611BDF08ACF3C2ECE9D3D7F021F3D48DA8EBDCD3EE4BC925893BD1B08843DACD5583D7DFD9EBCE68F91BD0CF0963D229958BDB89ECABDFC1757BCDBC3A63D9D5A023EF8FE19BAAAE9A4BD9C3DEBBC53E70E3D4A97913B93709F3D92F8B73C1ABCDDBCF33B043D1D9248BD6B869EBDFD59A53A8A4EEA3DE1FD003EDA2844BC50391F3D130B1DBD8BA3573D98917EBABCD337BCAEDA0BBC657F0FBDFDF6913DDBD918BD984D98BD975BBDBDF32C433D5649023E3C0A2F3EF1FBE83D509AAA3DC5D087BB83237E3D639AB7BC4DE2CB3C5DF2843DA71148BCA32B7B3D02C6293CF47580BD2C2A23BDA3A99F3D36BD933D926C543D33E5DE3B29FA3CBDD10254BD4D4A533B055173BD03597FBDCD053BBC76832A390158573DAE7B5CBD01EBB3BD7400CBBCC617C3BD8C3C1EBD19C4FB3CBD6D84BDBABC873C64B853BC3D2AA03D939F0D3C472246BC288DA9BC261322BDF6713E3D06992ABDA06F763D315C2E3DFB3685BDB95B543D3C91CCBB48791F3D17951DBD1E28FE3B4FA01CBB944C62B842E391BC5DAF48BC8E8029BDD5634F3DA1B7AD3CD97653BD6494D7BC4A0C82BD6AF0A5BCE01B1B3C9D0E8B3D2FAF96BD007BA9BC38695EBDAAF7353D32B09CBDFFFD903C5043F43CB8C2343D05D0BE3C1C0384BC2261283C2F4D99BD22F2373C7BD9A73C30CDDABC1EC7B5BCBDF9FD3C828D04BD56559F3CE2ECA8BBB62AB53D5FAF64BCCE2DA13DC09BA43CEE5B853D449715BD1A618EBD0CF402BDF39C5ABC825093BC7E58493D206C69BD172E743DC64EDDBCC03ABA3CD730A33DE1CF343D51FC803D4851FC3D1B8A80BC591832BDB96E00BDF190A2BB170C423D911A8F3C6F10863C94396C3DE18F52BD81739C3DF6FBDD3C1C51E83CE5C510BE9E7B743A0A70C13D9419B23D59FF18BCE19C88BD24B6ADBC99B42E3D01528F3C0CCB46BD4E6291BDC13BBF3C540289BD1A9F16BEBBF5D3BD2CEED33D6C8CD93D40D2BC3DB78D38BDCDD06E3C162E1EBC911AFB3C3CBF2B3DD1F196BD46E4ADBDEAA409BDAEAD06BEFE1DAA3B908461BC3CC6373DDF7A833DC48EB63C4CA5083D0BB72E3CFD076F3DE09BCB3C7BF1503DA3BE48BDFCD635BDC8A526BD6974013DEC08D63CDB4DD93D7F79033E8F6A473D67B1C1BD87FAC43C4D26F83B990E6ABB2BE687BD78C18ABD312737BDA6C29DBDBE6296BD4FFE123E9DCD153EFD5F9C3D4DF689BD34CABDBD7975F3BCB5A3CDBDCD44393DE43B05B880AB273D9D2CCE3C50724FBDD4AB90BD6A4789BDF5A4843D52F4213C3E96CCBC2CE93CBDF747BBBD98A08BBDEF82963C042D873DC8DB5B3D4A4B493D493C3F3DF159F33CFD44A0BD917D97BD4EF0673CD5F023BC7C5F3D3B7EC7363DFE94B2BC9CBC80BC4BFA213D15D0963D793413BD694065BCF0598EBD1982DE3A8D8A503A8E11743D36F4F9BC9EBCC3BC1C21963DE92B67BC62AFEF3A0C016A3DC7FA6B3DDF230EBC2FB093BD2E9081BD5FE495BD7C7895BB55483DBDEABBA13DF89B14BDFF7F02BA72A1723DCA611ABCA17D783D445B3C3CC953823D562DB53B94A51F3D28B889BD06CC0DBD14C7E23CBCAF00BD34EC9D3C568442BDF71C213C5691913B9CC632BDEF7CC5BB0A40503D16A469BDF624F83BD4900D3DAA107C3D24FC8DBD1A1CE13C7F68763D8C031B3DAA69ACBDBD6024BD98F928BD982835BDF84130BD59B52CBDA2CEE73B51BD8DBD3C2560BDEA8FD2BB848393BDF9E7663D0D259C3CE7824EBD9D1F713D732704BC2502FE3C8C6D5BBC78CBF43BBE43A33C70D69CBCC57B333D44C32ABAF8E3093DFD81723D6AF2B4BDB732B1BD1196903D539E1E3DF357F43AFC772D3DBC07B5BCD053D83DC92E8B3DBE3DD83D4FB5EB3D441807BDE15872BD6970ECBCAB601BBBF474AF3DE1B3D93C5D911A3E4B47A43B0F2FB3BDDCE245BD0403B03CEE7F463DFDD9373E3C31213E753EB93D5491FBBCF448F9BCF1CE7BBCE989D33C38201D3DF330083D27E5B83D89E6ECBC7BD30F3CFFBFA5BD050599BD1A7F59BC9116BA3DEB413EBDD2344DBD7D8FB9BAFB1805BDD1DE04BDA3F0C13D6E8C323DCF4B443E6516203DF42F25BA710B45BD3EF6CFBDAEBD81BD803C98BD70BB08BD8DC2AA3C855587BBDEBF07BD7DEE07BE08A1953CFE2BC33BAE71093E4CB3D63B92B3D7BDC8D3EFBDF1B88DBD3059ADBD6CBAC1BBEF62F9BCCE1E86BD523E833DFB607ABDD06C81BD97A10FBEBC13DBBC3F5D81BD661B15BEDEB3BF3BE091F93CD28CC93A2AFA82BDC0E22B39D4CB18BDB318113C960BD8BC854D113B93E6023E276C283D7F7638BD1D7766BD6036DABD10DC86BCA4BEB13C569BA63D08348C3CF344923D4941813DF60907BC301FC73910E8B93DDD6CF93D9C37DF3D86593D3DA0E50E3D637D5C3D6509AE3D10DE833DE27FAFBCD891B53D8CBB66BD9D2374BD19976F3C87EB5A3C1E7C693C6FF4E23CC280673DB3DE913D48151C3EEAD77B3D1034C0BBB49D893D87E8323C430BEF3CEA2444BCDE83203D9C4E5CBDFA6618BB3ADB79BD7EF4BFBD48215F3CDA3BAF3D8D14673D830C853D5410E53DE1AF843DE697C4BCECB916BD7EC0B73C6E5C89BD72ECAB3CF9A8493C8A76B5BC85E26BBD46AF53BDEE9ECDBCD5C8ED3C2895FABC9F429FBD5B9478BDE841FDBAABF4493C845C18BC1480E53B8021F83C726116BD8B638DBD40A2253D65F736BC6C41A6BDFCED68BCB06E59BCA4E79CBDADD70ABC85A0553C5F06ADBD67DB593C6AE16CBD7CDCD6BCEF955B3D50C181BD84BE82BBCC80BABD7812C9BDF9CAFFBB0A4924BC5D0897BD2E8C743C8DF796BD7CE0293D2F9E503DEA78D43CE9038EBC6483ABBDC25AA13CFD614DBDE5CEF0BC5C66BDBD137382BDA661C1BC6C6BE63C1D59A53C48F749BC354D1F3DD2A2793DAAE038BD8522ACBD393D81BDC7881D3D02F6FDBB8E197E3D2527AF3D8480A03C2B7DF2BCFECAA3BDE5F5BB3D7E96B63D824279BC66DCB3BC3B78853C219788BDEB6200BAA4EE2E3D7430993DAB1CAA3DBD2F933D2D76193DAE59B2BB4848783D2DAF853D1953D93DEBF8A13DE7BB05BE7C1770BBC13A23BCE0075A3D5C55C1BC1593A3BD6086D63C16B3CCBC8C9FE3BDAB3ED3BD05EF813DA0BC753DD408EFBCEA638FBD112164BDCB553B3D649390BCA4092B3D148115396F16BABD8F55A2BC6BA5B5BDC2AD2DBE8960DBBD8787B83DF5BC6D3D2687FC3C64DFCDBCFDB552BD6F84AABDD9CCA8BDC68D07BD33CDF1BC7914723DC47B303DADAC39BD3C959EBD9283DF3C0F9F323E72950D3E4B3CA73CDD9380BD30376EBDD0495FBDC67BAF3CD20281BCD951A1BC6EDC66BB4B2F013D532906BD719E87BBE674353EB84D163E65C3133DD9385D3D585AA73C689F15BC94F2BCBC7D24E03C645379BD02533D3DA7CB5DBDAC69B0BDF95C72BDBA769B3C73ECDA3C9A6E80BDF4B0E3BBA1573CBCF1158A3C150B16BD42229FBD08C2D1BC4F59A73C043FAABBB50D6FBD88A543BD66EB7ABC7CCC96BDBA36713CCE4294BD4D9CCABD111E9DBDA6A8983C11537F3D774555BD84EFF13BBC31DFBC7900053C99157D3D1DE31FBCAE6232BD6E81EFBDFB9416BED9C990BD06A286BD25E6743D0F3B96BD399C633D9ED13A3DA156A4BDFA2F82BD0F1B113D1C70923DBDD2D33DF388E4BC3E3E55BD00E129BCA7496BBD79F48DBDEAE488BD3F61AA3C65D92BBC422AC83CABF086BDA7E656BD4FCB6B3C66F957BD9CDDA03D95A84EBDCAF42ABDC0904FBC686C863D638434BCC9EE193CB93466BB8339C43CAD784B3CA319313DC8D2A8BAB75142BDAE2E773D85E6DFBC62877B3C783DE5BC438D0DBD836669BD77A8AABAC443183D28CF74BDAD9463BDF5BE47BB8A60ABBB1CA378BD55FD6EBB9CAB833D6F9B653D4AE781BCB5C55E3DC29C46BD86B0CDBD9F3877BD602CA9BC58026ABD830784BDB3D9C4BC37D88B3DFAF2323D8FF95ABD20F27FBC77E8C1BDA2CC07BD019C0D3CAFFDDABDD85E8ABD2B9D19BE09C2CEBC55044CBDD92D50BC9CDD88BD9DB5733DBBD96A3D3936D4BD6DD900BE37E48ABD8724613CA4B37F3DCC82523E62D7733EC5DCD83DFC9D6D3DE6EF76BB18491D3D873292BDBE35963C5DEB903C24F1083A17CA333D314B3E3DB3EC803DF6301E3E9774153E0A09CE3DDAC62C3E7489163C8A37FBBBDBC83E3DEF0A6F3DDCE9CD3B1BF32EBDAC6375BC4616923D9823DE3DA3DBF83C89C5533DB23EAE3B399EE4BD86F2923CF857EF3D2FC3F23C2934E73DC903073D08C976BD5ABE4D3D2D25303DAEE600BDE54BBB3DCB4392BD24DAD8BC3062A0BC745F10BECC4BF83C188F3DBA5F096EBCA5E1143DA2F11F3C443D94BD08530ABD4CA50FBD128A1C3BA3CC5BBD028F6E3DE2AEDF3B849FE0BC4408D7BD8665A7BD29639CBCE5E1C8BD7FC44B3DF45909BD03A508BD78156EBDC7870ABD9EF5703D140256BD20CD6F3D27B340BD3A8D26BEB9674D3DCF5767BDF3FD68BDE7180E3DC9C818BD270B133DC21D3B3BB543E5BC2B01403D48C7B73D60C8ED3D7CCA153D7EF86EBDD7B873BD6D9DE33D4C8DE6BCC1CD08BDE42C353D50C7983D6D99893DF9F28CBDF4833D3C2E84B0BCEC74483CF6B9633D1F2A823C154A35BDA7C8533CF16E2ABD769557BC13AED63CF6B7903BDE62973DAB488C3D3245183DF73E09BDC7C11EBD03506B3B9FDB193DAB8606BD596EDE3DF29011BC4DBFB0BDEBE0E4BCAA8ECFBCFA44823DAD534D3D352ADD3BF168433C003DABBC67D12EBD74F23A3D5A4D973D0CAB9C3D4FB4DA3D4ADC42BC7B34803DFB14533D6B3F4ABD276C333DCA774EBD223D733D77C3613C6CC9683D0EFC15BBBB3F49BDDA9C6D3C74E3D0BC5DBAA7BCE3EC173D66C2463DD455E23CD776793DA403EBBC6FB32CBD3201B93B6AAA07BB328238BC952D86BD99109ABDFD216ABD0C733A3B7A1F91BB91F0603DD331EBBC0FC041BD6D10C2BC2E7A6B3D5B7D9DBD0167DD3C970905BD6C7B583D73C4223D9937A13B7BE600BD2003D5BD8C0A02BEE6B5CCBCBF8EB7BDAB39BCBD390F96BD28D2D7BC5F7BA83C6B35B03C5FA867BCAEE437BDE85223BD70C78ABDA88D8EBC70AEA5BC9AC422BD8819DEBC7B1E123DD94579BD662A4BBDDB67023D94FC1CBD99E8223D7C4817BD2CD0163D0112F2BC5F83D13DF5FC593CCC57A73DD6539EBD1152BFBDA9CC733C0284BD3DF656D43C5E72FE3DDFA117BD14FD98BDFD200F3DC3FA1B3D8E0C223D771D9C3D118A633DCC51763CCA06873D7EACE03BEC60A13D602C0A3E06660C3EF86FFFBAA58B59BCA2CF1B3DB96C7CBDD2ABA73D944FB03D7AF250BDFE9C013DEE27E33D6497FC3D05C7AF3CDF18D33DAE35873D91A49A3DEE5617B9B8C7B3BCE6019ABD2042A0BDE2FCD7BC55FF1ABD57172A3D3396ED3DA05BE83D5D444DBD1729EBBD65CE8D3D5E9536BDF7F1B13DAF98E23D4093253C7A0B4CBD146808BD3670DDBCC4A5DB3C9F321E3ED5916C3CB8D9AD3B4011ACBDA8839DBD16E967BC4ED5283EA18F663DA477D13CEDDC933DDDDE9EBC160BA2BD52AC95BD2F58F13CF036993D17B6BE3D5BF25EBD7C823DBDE439323C36ECF73DEE00EF3C00B24D3DC3D6C2BCEC3705BCB2E77FBDCA8A5DBD31A15CBB6B29A03B5FDF3EBCE4CD48BC83CF18BE896649BD9DCA9B3D525961BC0F2A61BC39F2B93CCEA693BCDDC1DCBD2E332CBDBEEC53BC728831BD02269C3CD71417BEC65EDDBDF75EEABBBEF8C2BD48598ABDE40FB93B4F5712BE89E78FBC5ECE39BD40C8B8BD24A3753D36EC44BCD86B26BCF5FFD83CC90FBBBC8C5B3E3C25440A3DF53B3D3B0685A53DC7740D3D6F083EBDD7D3D43C25B36EBD238A203D7C1C61BCED715DBDCF1501BBDDC54E3DF57584BCDEF1863DC60C053EB895B23DB062813D20CE2CBD7F03493C091C083DC839253DF48265BDA9426FBDA5B772BD115350BDE0DD37BDFD180BBBA442523D396851BD3EA4463D834ADA3B90DAA1B81F9AD73C2531213D725F013D4E5E92BD31ABCEBC32BE023D8A7770BD883D43BD39C14C3DD14BB6BCFB36E73C2A40F23CEE3F913DF15FA8BB98DF7BBDE5159C3C5C9E0EBD6EC49A3C96C393BC754B73BD6AD27D3CAF6C2F3DD07A1CBDDEF8233C8F5192BD863B9ABDB4C42DBDADFF64BD9A9C0EBC29BCA2BDC69B173D230D88BDA672B13CE558823D65D8EDBC003169BDF6354F3DCE31233CE2C1BABDDC5D20BCF09C09BC6973E1BD0B609DBDB9382BBC05BB123BD167FCBB1977D43BBA8C7C3D5DB5443DED5670BDAA35ABBDAB0BC8BB1E525CBC76B1313D03E1DC3D79EEAB3D35DFA73DAA71C53C4F56303C7397343DA2E16ABDCB6401BC3B26853DA82AE1BA8C54863CA3AF18BC4AD99A3BC7F9CA3CC2A0CD3D86999E3D20A9F03CADD1A93DE466F5BB23C1183D274E983DD3AEBBBC93C1343D91C803BD20760CBAF549EC3D0E33293D1425B43C1253F13D9BD98C3D3F6CBD3D52B68E3D46AD8B3D2DFC82BDD3E06EBDDD4070BDFF7F313B6A85513DA2BD203E3889FC3CCF859C3DEA0D103E5F50573E53A5133ECA29B73C617EB03B9C4A233B56D02D3D3BCC153D58747E3DABB109BAC56EF8BCE995FE3C8622193DFCEF0E3DDEADEA3CE809DA3D2D6F2C3E7F0D0F3D6EB1DFBCF685B43B373097BC1FAB733D788FBE3C005E31BD23B2F3BCD6606DBD61882A3DCF0AC33AA25937BCFF36CE3C2BCBD33C7A9B2D3C685BB1BD7EF2F3BD89BE05BDF3D4CCBC4CED0BBD703C31BDE42CAE3C5EC401BE24E602BEFD9F29BE8E9CF4BDC92ECBBCCB7868BC104283BD94DEDB3C7B47FFBD5416D7BD7513353CEDB276BCC98DDCBC3FF889BD13FA7BBC9264D4BD2C6F54BEB1DEECBD2988C5BD671EC5BC030886BDA38EC9BCCACDF4BC68EB15BD84E0603C5C1D26BD4FE24DBD3719E43AD05558BBE276C43CE876C13CA0A07F3C2A3A693D827653BD614709BD5633E83C27FD26BDA64F92BD976E0ABCD64610BD6541853D70686A3D0AA731BCBA7C853D75E57B3D302ABC3D48484E3DB70FB43D8811D23D62E7A03BCA5E0B3DEC4C63BB87C582BC555480BD7798983C5E7E513D0642A4BBD2B78A3C44DC9C3D464BAFBC0746D8BCF151DDBB287AB53D5A197A3B24E66E3D93C8803C46532DBD277E80BD861B183D30C39EBB06A7513C9543243D9E49F8BB8C113F3D8A53783D7D9BB0BBBAFE633DBB98493D4D5F153CA04F04BD8D0BCFBCA0720B3DF9B1763D9EF009BDA65785BD054EA2BD4A1407BDF18E3ABD93308FBC4B8218BCA45D27BB89BF0EBC052AD43BDDB01DBDC42684BDF300EABCC59E84BD946B4C3CB04A40BACA61453DF47B593D5544A33B020B553DC287C53CFC79A93D09EB823DF572A63D58152DBDFA0B4BBDEB3A873DA794463DA4DB2E3B543347BD2A249ABD8AA133BC66101DBB388414BD5C2310BD75F2A53D1043ED3C12050A3D27AA043D0FB4623D218A68BD5EEA203D8920FE3C33120ABD58891EBD08FE76BBDA5EC3BDDD22953BBA2CECBCDD82A43D0FB1163D230899BDE0548BBDE0E88C3C4FD10EBD232DCF3CF599EBBB8D66A0BBF66C783D171CEBBC5B3C7DBD1D621CBDA4014BBD22FFD03D874B713D4A3C04BC69060E3D51C666BD653FF3BC8B18C43CA21327BCE6B4643D3704C63D96EBB2BDF62E023DF77853BD79F8B3BD5B76EFBCEC458C3D749CB83C256480BD7CF05EBD5B14DEBC946A13BDC9121F3D9FAE093E18F8C93D9B57193D80E7A23C840542BDDC661ABCBD9C093D07E9CA3D047E49BD932D893CD9A083BC67FAF33C56BB003CEF3176BC5B50223D2AAD213E328F593DB986B63DB149163C58ED343D0005B23D378F3D3DE3EA1A3D01897CBDDAF557BD3F5F7FBDB24ABD3CF10F8A3B2BC66FBD1B69CF3D12129D3D2725493D040820BDFD4385BD933091BD1B68ADBD5E0409BCA04CEBBC50CE803C4A1E15BD581E243D3F2C80BC3468B4BC87279FBDE73B3EBDBD587DBD32DB72BDD71C49BDECE3C7BC32FE733D943E303C4C33813DE8F7DD3C2E581ABDA0C7673D16E0C5BC235E19BD173A3CBB1FD767BC42DBB0BD177DC3BCC00827BD65FA833DC408AD3D0832183DBD7989BB2FE7603DB9C98BBDF19C4E3C2E0368BCC186B63B440DC7BC1C900B3D2E8D38BBF64B6D3C6127C0BC4BDE573D8900443DA3EC323D6E868B3B204275BD5F17D2BCB48C63BB46252D3D0858A5BD49F55FBD5C08003CEF655E3C5D7114BDA4DAB4BD0E23753CE77FBEBC0A79FC3C940B863D7EDE753CEF09413D89C1A33D942206BCDFAF033D9915263C23CE643DCB06233D4D98333C96630C3D836E853C8D4EF5BCD0913E3DC79838BDC56B9F3D44D2E1BCBF3A1D3CEA94A6BC3771243D3C4C38BDF470033D0A374C3D206045BDD9D3A8BC409F8C3D28BD333D96FC8E3D9542013D8E637A3CF655B8BCBE3219BC71C42BBDDAE3A93D71EB663C5812C2BCCBF689BCA695E03C2539F53C9B98743B93B9693C7DC157BDAC9D59BC7BCBB7BC5255943DC364A33DEC9142BB2E508D3C5E8CA03B3A67A03C762A843D62CB6C3D4A2AC23C2F90BB3D95431F3D1DE361BD88FBE3BC9DEE3F3D400007BDADCB08BDF4AF8BBBDAA2AD3CC8FBD2BC60D493BC12EF72BDE0950D3D63619C3D7059F63D6BB4E9BCC84162BD936502BD0F6EAABD30027EBBCD817D3DBFF9033DD26E113D187C1BBDD4A52E3D0C64F73CDE6CA53BFB678B3D49A3C63DBBE6133EC4E32D3E2F82453D9BE92EBD9251823D2FAADDBB9EB9413D0DB59A3D8443893D57F9DE3B75E57CBD6FFC11BD7529DC3C965AFABC3176E23DB4FAD63D91D5023D637A21BC3066D93CDAEF2DBDA9B6CEBBF4816FBC6CF683BD452DAABDCD949F3D623017BD4EEE703D669A6EBCEC9CE23C94B3843CD90DF6BCEB384DBD5828FDB8A6AB903D89C2933C2C4D8D3DD916C03DEA8DF93D38625BBCD8BB3EBDFDA1183D485779BC0F87D33C3BD9253D360950BC92CABEBBDDAAA4BC2D484EBDD3EEB13CC482693D97B5693DC6ED853D2757A5BB9D564EBDD480DFBCB430A1BD5FC5BD3AC1DC093CF17810BD9DCA783D2BEF04BDA2DA41BD5D5CD43C88C489BDBCFA87BC35D8263CA17A24BDBCC107BDDA52CF3C7C43BFBDC10E91BDC974D8BD367116BDC8F759BD06C619BD740E153D87224DBBFB46663DD6EB35BD301BB13D4127F63DAA13F43C5B6D5FBDD4545DBCDC7758BDDD0CF0BBC669E63B5C350F3C228788BB3DB6BC3CA5CAAB3DCDA9623DAB41C63DB66EFEBBC2A143BDABE8AB3C64BB9FBCF439ABBCAB3681BC79C799BC75433E3AD4FDAF3C4213C53C9084B2BB811A803D38F17B3D78C8453BD3A7F53C4C4D2D3D658AA53CE17CA1BC3EC28C3C01142A3D606D18BCC25E9CBC3E12C7BC319068BD070909BDD1FD33BD2E90B0BCA012843C55391C3CCC7E803AFBE2673D502D84BD47CBCFBC03E16A3DD4414E3C2A4F5C3DB712B2BA60C17F3D87F9EBBB7AD2CB3CAAEFC7BC66D261BD68AB60BD708A343DD41BB2BCA5A16DBDE38F8F3DFDFC2EBCC8D3663D8A3F563D761FF53CECAE80BCC9AC853D88C05F3DE3B9783CD8C3FC3CE15D26BC27B5CD3C5190273B55718EBC58B7B63C00547C3C23F3873D72FC42BDB60CDF3C3F4BBDBA48D58ABDB5D74E3CA20468BD88FE3FBD2DA1933DF52D43BDDD3258BD5D1AE5BB4527FBBCE5474B3DD8E9F0BCA2D212BDCBF0093C0F7F0B3D8C8A273D27C3493B82EC4FBD5CB4D03CAC54103D5397683DC9E484BD8783FCBA92C28C3BE84D4D3D5D316EBD80B1CC3B933913BBD9930C3D2BFB0BBCC0A26A3D7BE2013D05C601BC9FFD60BDDD0428BD1ED49DBD9ADA13BD365A453DACA8A43B7BEA4F3D2A252A3D0C96DBBC52A7333DB5E10C3D2A5EBE3CDF4C3E3C155A2FBD397B25BDD4BDC33A0F72813C783DC43C4BF6323D7B9B3BBDB1831CBC114442BD58E589BD95DEF73CCF3F8A3D3D7A16BD53344C3CE93D1EBD1F86883D07A5B13D179FB53B826A84BC65A588BC272B91BD117C343B066F0EBD492A52BD94F6333D7EA0E13CAC6874BD2E4F3DBD096FEC3CDAA2ED3C5D839C3D9B31903C5225183DF31ADCBCE67A44BD6B3E1CBD0F029FBBE7A9D2BA7E2A93BD627E8B3D11FD0CBD441E6CBD03FB9ABD481F1FBCE80897BD2739E63BED8D9A3D4B47AABC6C689BBB985A8CBC6135ED3C84B3463D73EE903CA6CEEF3C1ED48B3D634AB43BCA0D2EBDA128483D90964A3DB83A4F3D81921ABD5BC31BBCAF8C1E3DE59A733DC7ED793D1120603CBFE2693D2936DD3CA1499D3DFBF8323D6B9102BCD3AE19BD227404BD75300EBD92EA40BD4FAA0E3D18B509BDEB8788BDA7925BBD6776CFBAAF26FDBBA2C711BD7EE1D33CE31E7ABD51ADC63C16AEB63B409A7D3D23EBA83C5BE016BDB12CBBBC3D2350BCC2F3BB3C189C403DE61F50BD71D964BD709D73BD4A4C303DF3D3C43C954EE33CC17F1B3D24BF853BED48663D3B84A63C427748BCE2A37E3DE87268BD4F3EE03B6EAF503D1A92193D0A41E6BC3C8BAD3D33F6773CFF82F23BDC139EBB2C9C27BD9081973C0F252F3CE2810B3DE436C0BCB7B8893CDE4A61BD8657903DAAC0E43C5394183D4032963D606670BB8BC8153D03BB793D84292EBCA357EA3BAE0C983B489058BBA966893DF14D863D559F613CA8CC58BD82E6243D61799D3C0E6CDBBC3430C53C56A3823C5827503DC8EDC93DE5D87F3D3501ADBCB061243D7E2C45BD64B7963C3283333CAD81FD3C49EE46BD15171FBD7D6E853D2707483DDC95B83D9F3B083DB981FEBC3E02D6BB60490DBD0C128D3C5417253CBF75B43CF2A3B73D5B835A3C1F01B23DD160833D2C43BD3D489CC23D9CC7833D4538C4BDAE29F83C127AF0BCEF3A96BBEDBF3E3D93FC193D8B668C3D911D3B3DE8AAA3BBAB8C5B3CFD92A53DA1EFDCBC14FA423D04CFB3BDCA24673D7899043D4B90533D5670AF3DFE17C63D5E68943D96B08F3CF2A7933C38E4293DACBF2E3D0E132CBD333F023DEDC29BBC3AC713BC0D0DCB3CEEAE7E3D2702603DBCBB083E32B7923D0BFFD9BC154C45BC4A0103BDE5FE903D5B4F1FBD6071C63C230D0F3D809DF5BCDF00E5BD97D94B3AF4B6D03C4FAF093E101D963D4AE7D0BCAF01503D194ADC3CC2C28C3DCBD6B33CD441813D018C94BC6B3B17BD3A8E90BDCFD0FEBDDBD92F3D3336913D76DA99BDEDFD823D307115BC9278823D0A188B3D8D33303DF66DEC3CE4219B3DFC8FB53DE5430D3DF1B8CB3D6909853D57FE88BD372078BDDB69B4BDCF0B48BCF60D3E3DAD3AB33D969C1DBDAFA833BD0BC0943C086119BDFC1CC73D17F9803BFC3A023E480C903B608B553D1D8E10BD67EE5FBD3D3E563DA609713D3DBC56BDBCF4FBBC9E37EE3B816AF2BC1729B03D0773563D59376BBCFFC00ABC71CDC8BBEBB81ABD3ADF0B3EAF95243E62D1A73DC7816C3D0D9D30BD38494E384C406C3CE75DF5BCA87E433D041F3A3BE24C9BBBDDC0863D9ECFC13DD08DA03DF74F783D47318C3DF52F943D3970603D09AC333DF65790BC097D9A3D92E6053D6747073D7ADF543D511C893DE753343DE6C1623DD5CF00BDAA51073DED4E93BC4F830A3D9B90C4BC4182D1BC58759E3D1DFD28BC104A23BD08C742BD0DE082BC1312293D99BDD33CEF86E33C5FD94A3C15B89DBC50718FBD287911BD225DA9BDA701E13C6A8D98BDCC63E2BB9C073E3DE41766BDC3ABC3BCDB121EBDFC80F63CA9086B3CDEE87BBDF3AE89BD5E6C38BD925B77BDAD7BC3BD298F11BE2D758BBD43E296BAF11AC5BBBF7D3ABC6DD414BD835C703D6467EA3BC817EE3CC90E633D36828E3DA155063EC908DC3D4CEB0E3DE916D4BD689643BD4ED8943CF19E1C3DB534D1BC717BDD3A961F123D2E562C3C5331823D36AFA03D5A055E3C5C74C33B838CF93C39AB063E8E3CDE3C8FE3F33D7D7B833D3A1C743C3F0E493DA282D7BCC22A1CBD177C0ABD7841BE3C3FCFFE3CF0BE483A7C8D8DBD04FFC43CBB47FC3D5DC9763D82D4283E1FC2FB3DDE0A1A3C274368BD846D72BD8D39A43CBEC858BD38B7A2BC8F4D023C1127FCBCBA5BFBBDCE243CBD95639C3D6B29DDBC449DF73C78B38F3D8B6274BC5EFD23BDA65794BD83E9C13C7011ADBD388A0B3CA8F0233E758ABC3DC9F0A23CB2DC43BD272E413C5B06BFBD35E249BD8D1DA8BD7C2EACBCB3D614BDAD9922BC66151D3D4E4BC13D67ED853D41161F3E430C3C3E1F604ABDD09EA73CE724463D6EDAA7BBD6AD723B82AFADBDE73475BD57D85A3DA9AF903D683EA63DFEBDA53DB39214BD5947BCBCA99E04BD5B9934BDB80D583DE70A833DA8D916BDD1F13EBDED5C343DF1FCA8BC5B8352BDD1B80F3C75F6443E7B04363EBA5D2CBC7C4CEDBD4197BCBDBD4A0ABDEEAD613DC7C79D3C94C5893BEAAECC3D0C3DAC3DDD7EF9BCF58F8BBBF46A8D3DA3A1063EA4DEDA3D974CBE3D3808F0BD696B1FBDACCF49BD490C68BD27B9473D76AD163C573AF83C74EBA0BCC482BE3C402D9EBDCF4723BD691E753D3E729A3D0B1C863DAD829A3D3E4CD6BB1261C43DA995B33D8330B73D9DC1B93D8528383D85D1973C9DBD98BDB8ECA9BDB582353D1908A5BDF906A0BDFA5A993C043BD0BB6ED0CC3DAE6B453CD7AB0BBBFD7FBEBC97F6463DB9AC4C3D97CF83BDC26E17BDFB0D00BDBDF3B53C71C0A3BD7604B33AAFE32EBD79376ABD14ED423BA9D92DBD20BBBABD5BD56ABD3FFF54BCA555503CA7B29DBBEE689CBD03E7CEBC03D200BD52003EBD790CA0BDDD6936BCE174893C0C969CBD6F25FABCA8010EBDC41A3BBD1A2EFF3C269B103DFB51CDBCFF10C2BC8FEDBF3C36B51E3CE52789BCEDB636BD8BB838BD5CA76EBC64CE2B3D46463A3C9396913DCB23A4BAC8F08A3CA0A482BD5DA4003C6595E53CA2E92CBD6943603DE6C993BBD80FB5BDFEFA8D3CC989AB3D7F19CFBC3B21FCBDDE1108BE91602FBE1BF2B1BD53C2CDBD43AEB4BD0B603F3DECC31EBDF5DD783C6EF879BD9185C6BC5C24C73D8847C53CADB0903D06933ABD425668BD3261D8BDB3F932BD90645ABCF50AE3BD3D9EA2BDC7F6BBBC6770BE3C4645053DC01E023C6C0A083DFEDED63DFA5F4C3D50A11ABAA240293DD76433BDF23489BD4B867DBD2E6B18BEC36CDC39D290F33B3024543DD1F62A3DEB40CE3D7521FB3D392EED3CEA6A323DDC5FD2BCAE4AC93D0CA18D3DE0200C3E5EF1493D1A2799BD1D8B7ABDA619C03C45F500BD2965903DA356923D6C88343DCD993DBD91DF6FBEC13205BDBA31113E2618B23DD244AB3D61F48E3DBA5577BD304B4B3D20E2693CA1A090BD4B7E113DC4B3E23C1D7752BD81C35EBEBD2B74BEAC8C9B3DA51C073E89FC3D3DE1FC223DB28FBCBB3C40333D44B1B8BCB9264B3D5733483D2CCC98BDFCE7193CD41F54BC568D6BBD21378D3C9558ED3D1C8AAC3DC77D2C3DDEC9A8BC0E0B2BBD3C8F023D6BD3C13CE6EE00BDEAA114BD8A4A02BE33792FBDDAE908BE88B94EBCA6AD763DF2DC113E68A42EBD4860BA3CCBED83BCE1804EBDDBC0D5BD0FBF9A3C92EA24BDB79A46BD7E18CCBDF97197BDEC91B9BDFCEE8BBC767DF03DAF97FF3C854D1DBCDF3A49BD516468BD3C5D2EBD6A1CBFBD9EDB233C7E202CBC8167943C4C0F87BB1038203D5E8F3CBD48A974BD7C7E80BD121F973C4B8EADBDC59965BDE67D94BD493F973CF98395BDA28E203D560D3FBDE011C3BA2BE9EABC4F84E53DFC7CD13DA69021BD23FC4BBDAE31BF3BA4DABCBBEC5B99BD022C11BC6467BBBC88AFBEBC11FF5ABD045407BB74F35A3DB8F2423DBCD2753DFDB3953D6875823C1F60CE3D60D4D73DBD271CBC979E8E3D5BB4ADBCE949A2BD90E68CBDB2C136BB2CE5B13B70B11DBD331E90BCCAD6333DF16E8CBCE5E4943D47D8C33C0F07413CDF9C113D5999823DC9C9BF3C809635BCE9C3843D2F89603C09AA1D3C5772F6BCDAAE39BD8A684ABDAB16873D9FC695BDB5ECA5BDACEA873C9B47A23C479E40BD3663E4BC0AB3493DF2416DBDE4E0453DA65E11BDBFD61A3DEEC658BDECD7353CC0F11ABD989C0ABD3CA102BDA698693D431B1CBD07FDB4BC41B09A3C05593B3DF050333D6819693D60C255BD4C9EED3C42AD36BDAC32ECBDA0521CBE21F6F6BDE1FF4E3DDBDFC03CD868733DBAF25CBC7C77A63D40529EBDA426BB3B83994DBD5AFD70BDDF7AD6BCABC6E4BDAECE10BCC7B423BCECB537BD8432C93D569E4A3D1B663FBD361F5DBD0E136EBD2C19BBBDF76BC1BD07C18C3D7CD4503DAA2CB0BC789F153D9449E13CF539873D26A3DE3DD8739F3CBD99903D081457BC151EA2BD8AA79A3CA32DC03DF669AF3C56F8D0BC959F82BC77E57D3DEC80E03C7AB0DA3D76F9DA3D57CAADBDC8F7CD3DABFF3C3E4E8AB53D419A0A3D8A56DE3DE24A463CEE6771BB8BBE5C3D96E40F3D9F8D813D239F5ABD53619CBC6DC6F3BD5F2501BC7319E63D9735113E42FC053D2BE804BEFC5CFABD138F11BD4E8C163A0DD9863DDECE4ABD88A100BCD0C264BD78470BBDBDD75C3D1DF1443DF7BE1D3E33AAB93D5F80DEBDBB7516BEDF0704BE9CB2DCBDBB98CCBCF3EA55BDA5BD66BD9E1BB03ACCE68DBDE2E8CFBCA0FAB23DEBE3DA3D931B873DF93CDA3B891729BDBAA800BD6E919DBDBEE1DE3C1287893CA97B803DA50EEA3C58D953BD05A2BCBDDA39773CCEA3F83A4CCCC9BDA31DC3BCA90BA5BD10690FBD9B778ABD6DE94EBDA9182EBD240AF6BC9F21C53C3FC6E23C23961CBDCD37993CD53D89BDCBC4F4BC8CFC143C9C0B7CBC1C57A33D895F0EBC0C7F143D04420A3D6EAE913D4798E53CC08DEDBCE83D743D11BF8EBD85F1AD3CF4769ABD2712993BF9AE97BCED68A3BDE01CE83C27A3B83DF7E3263DE9EA30BB6500B03D3C3C833DED246FBCDE2B1EBD7DD4DE3AB164693DAD2665BDFC0764BD4DC4203D33CA57BD3391323D1AE707BD1417003D075623BC8E528A3CA5EBC1BC8D87E23C7E53023D06736DBD96BE3C3D51960CBCB85711BD3F9CC13CEEA418BD65C775BC887A3B3D893683BDA2E5583DF3934B3D573BF23B36ED5A3CF90186BD6C9A543D23A468BC6D236FBC5536223DF1A469BCB93ED4BA9C9DC0BC4661BD3C40C5B1BB5491433D460A7EBDE6183CBD5249A7BD486FC9BC29EF2E3DDAC9A93B7578DC3C6B36EF3CEABDBC3DFE9DB5BC26085A3C56E82F3D8F57123E6F38B8BCC159723CA5C71ABDF7CCA83C18F0823CFA51813C42A367BDE08C7DBA237133BD4A4A8C3DAD88B2BBAC6A003DD1A66A3DEA0196BB41FECFBCE33E853B46FEE73C5893493D25F7B73C10D49DBD8C3B163CBE4C18BDFF051A3D2DC4EA3DC73A893D3D5011BC6D62FDBCB3E2A1BDB1B52FBDB27A843CC469053EE4C1893D9BCABD3C84C636BCEED86EBD8409E33D1CF1783DAEA8B83DE22E443B81011BBE55AF16BE36237BBD491574BD5EB9D0BC9DEDF93D7319A03CF2A6BFBC8998A1BD3C846ABD9F9C39BD8FE5C1BB3A8A1D3E200E453DCE123ABD6163EFBD0D51CABC00DC803DC306873C7D3C9ABC9830DD3C2791083D9EE78EBCDD2536BD216CD9BC87B6A33D4B81063E361A0D3DC93A61BDC280EABDB70099BDCAA321BD114D7A3D795B543D2602623D12E4D3BC86EDA9BCAE7C9F3CC49F0C3DC6DD613D036D663CC546023D7F26BABD1247173C72D3F33A83F0C43D4BA4C13D3C219CB870B5AABD463D1DBB04D29C3B8F6FD1BB020B003ECED4D73DD5803D3E8873983D6E83053D30FAE63D5F13B53D39B5D13D7C920D3DA814EDBBF0BD69BDEB5EAEBDE5D90A3D896E773DBEE9153EE0305E3EDAD7853E844E633E71E6AD3DB3F3283EFC789C3DC7AE013E0559EE3DAE34713C097C56BDDA425A3D4D17B3BD80458FBD68BA0B3C704E273DD101EB3C6B76A13DF1029F3D9D4B96BBE4B63CBDAF284F3D9F916D3DA41899BC7C92B13CF031623A863ACB3C6E9E27BD827C65BDB10674BC443557BD0F8E4F3DCA4AD33C7FF0A7BDF5E3E03CFACD51BDCFF7B3BD5B4BFBBC49F9ACBDEEFA0CBDD82902BD33F791BD1544CC3CFE2FFFB9790D20BC4305D93C4D568EBDA382E1BBAF58B33C0BE9163DFF15383C00009A3CAC144F3D359B4C3D818A88BD9B8E483D2EED14BDC2381B3D86109ABD24BE783D4744503D1981FABC81A7663DB2F2D13B1B6465BD5939973C4DA660BDCDE240BD1154543DF956E6BB7CA929BD24926BBD72B1BA3CD123D53C8903E33B37F3033D2FEDCA3D3266EEBCF06EE13CFC0663BC7F7A94BDF30CA2BDB2FF63BCB244BBBD04E5263D0B55ACBDED5F1CBCDB8057BDD59082BD4847D33D98893A3DC8E7F73CDE3FC73DB9D9083DDA8BFEBC7636A2BD7370E9BCF2948BBDED777ABDA7D3033D18E70BBC1F04F6BBA600043CE33455BDEDCBE03C052BE03C58C9DEBC8D6F833D74C11CBDD1903F3D9311BDBA79A8CEBD99C266BD261329BDA4200DBC220BB4BCD5A94EBD775F02BEA2578CBD5583BEBDD47C6F3C535A923C27DD6F3C856C72BD91B47D3C367B5FBD8A6E0A3D2C68C03C4284143E63FE673D312388BD88F5D8BD211149BC5C9580BD2BFA503D0E3EB53DD20138BDAF38CF3B8DE1133BFCE2FABB6B547D3D700EB63D756EAF3D122F0E3CD9618ABDE4180EBE06BE9EBC45C101BCA5EE703AD36D813DA02036BD30277FBDDB9221BDF008FA3BACE1993DF777403D41F4193E7CEA96BD6E0F16BED0E3FCBC1C265B3DD1A9B73DC157033EFED22E3D6F6C18BD426381BDBF6FA4BD8ECB1F3C40E5CC3B8611483D85E05A3DDB5A54BC826EA4BD33E991BBA3CAEF3D9FC8103C82E20A3D46DC39BD5DE933BD174D6A3C9CEB3FBC9D2FAEBDA8D9953D9E17633D2A0AF93D842208BD58A99E3D92EEC43C2606073BD0415B3D54332CBBBE41DD3CFB8BB93C739323BD4BB29EBD6826093C14D0693DABB05E3D8A110E3E931B093EFDC2AF3D6C8AEE3DDA36F03C4D8121BD12A6D2BC4A9A57BD245C43BCA6DF823B658958BC2B699B3C89AB1CBDB69A5E3D0D758D3C8CBFC83BAE304D3CBE525ABC4B6395BD6E4E3EBBE253A3BD0A8466BDD3A27FBDF11775BC166C0ABD1665253D88618EBDD89824BD53D962BD0FE323BDB3C1C03C52E1A13CDF24ABBDCD4D2B3D66F553BC4E86983C65E871BCC5888FBCEFBE383DCBB20FBD79080E3B01C4AA3C511CA7BD0FD68FBC6F5399BD4BD2AEBDC60904BD7F029ABC87721BBDF51BDCBCE99C38BD45AF763D23E349BDEA178CBBEA1B2E3C1D9F1D3D56F7ACBC62F9FE3C8E917EBD0EE584BD12ADDBBC5AD0FD3CBBCF9BBC93B08C3D8E46DF3BD399863DCDAD373D942E093D0AB5EF3C69083EBD7A8480BC9A68A93C35C69DBD34D523BD43498ABD569D223DADEA213D45E8BCBCE1BD2EBDCFB061BDC94A11BC7381D23C5EA4783D45B7B3BC4A2313BC9CB61A3B1B6833BD2123F5BBB7D0833D09DA30BDB28AE5BA9D5B113B87E6983C5118943D797B62BC041043BB58C7653B35C2073EA667053E9225F03D13FDB53BF01E273D722FAABDEC6AFABB675FC3BC898A833CCDAD62BCDA2C5CBDA5E10BBDCF87B03CF1CA87BA84A7183DAF0539BC49ED56BD9C885E3DA347D5BD0A36DCBC6428ACBD817485BD9F66123C69DF843D09E5E4BC3884C8BB74E9313D8A34BE3DA7A47D3DDA4152BDF8ADB43D6915833DE003113D4090633B3A10D0BD55D009BDBFDD1B3D056E153DACFB803D5B45CA3CCF34323CCDED063CB6CFEB3B8E61BE3DA90B7A3DBE7EE33DB0F200BCCDFA063DCF953D3CCDB6CEBD394D9CBDE1F5403DA6CC2EBD1F61903DD24F553C884250BDF9E03F3D1F1B11BDEC5493BD76D02EBCF4B84FBD4AABA83D8B67313DC2C3ACBCCE72AA3CD5355CBD5E6B7EBC6F10EFBC7DA09CBDDCA50CBD5A07A8BD956E85BC44D8E03A321BB6BDF15607BDD4A6CE3DC455EA3D271EC03CB98F8C3B6F128CBB61E097BC52B06E3D699B823D66FA143C587A22BD923C38BD88CE033D847C89BDD406C0BDC3DABDBBFD01A73D345C7B3C387A7D3DD70745BD079FC1BC10ABD73CF174033D27D7DCBC475D9B3D082D0C3DB1742DBD1FBF103DF1AE72BCB6C7093CA10B453DF317B83D63D09E3C7E55BDBC6D911A3D66F94F3D10DD07BDCE91A53D985750BDAC0B71BDCB08653AF31693BD2B4A253C113B1A3D5A78923DDCF1873D8B6289BD619FF0BCC80FF4BB5EC0913D23A9B1BB532C9BBB2081453DB5D9C43CDAA635BC6783D5BCC4D4083D1A0CABBC62AFC3BBCBEFC93C96B91CBD5F738B3D455776BDFA8C86BC5BE486BD586683BB6D67773CCA85BE3CF5CC88BB96D1853CC8A879BA8393073DCF294F3D642C96BC63E5DFBB0A748F3BE3AB143C92D597BB59A58CBC8BC03F3CC9F236BDF71386BCD921B7BC988D603CC64E8DBAE02C98BD56BC063D8FF706BD95ECB53CF3543FBC59FE4ABC23C51F3D0CD3653BD8D51A3D42D64FBCC0BA6B3DC134B8BC5CF746BDCFED4ABDD5372ABD1BB5E7BCA51688BD393F5ABD8FC54DBBE3D3FD3A627DE5BC781A87BC8DC5043D7F7E5DBD74A0D33C679AB13C2F3398BBB2E7E7BD93C721BEF34D02BE7E5505BDEC75573CC0A3513BC8B3603C81830E3D3145BA3CD6C3CB3D01B2633D47C9143E20560D3E01E7223E4A5EA23DEDDE58BDD6742BBEB65346BE8FD6DDBD8B9A47BD0CA783BC566C1C3D8EA8903DD231DE3B983926BC847FD13C423C303D9B458A3EB120013E6939783CCD0AA4BD83A4F6BDC7E90FBEB23AE4BC5905753D4C6B823DBA95973D4ACDA8BD1F32E2BD970323BEAE967DBD0240303E467B713DD5398C3D1E84A33DF0C909BDCDF8F0BD9EDB43BA0EF7CD3CB98E8D3CECAD643B353BA6BD4818D1BD5A2367BE3D7384BD7CABDD3D2FB5133E742862BBC0A263B8F8C5ECBD2A80CFBC5C81CD3B614F4DBD6E219A3C3A68A2BD5F6CB4BD8C958EBD800BDABD5D155ABD5EEDF13D58D1DA3D2DCFB23CEB361BBD837CE8BD2CCF7BBB247C1ABD25775A3CE03F81BD3A7B1DBD1C5FA4BD8920B2BD353995BD054AE43D19240C3ECDDC763D621795BD167E82BC5CDFC63C086847BD8437703C078789BDBB44F5BBD350DD3C677DE3BD53B6C7BBA558A2BD3E2C273DCDF10BBD0F6493BC227598BD75BDF63C789470BC298D393C5C77E7BB0A07613DBA4D9C3D9E762CBD3E717CBD04EB6CBD0806B5BDA66910BB1060DDBB4C4F1FBD5B36163DFAD68C3D31AECB3CFC8875BD3EED11BD35696CBD27BF32BDDDDF743DD1C3693D891D26BC09A7853B7F38BBBB965FC7BDDC202D3D23E3A43DCDC3CABBA6D392BD30C996BC5DA7CA3C0E8980BCBF1912BD6B5F0F3D25C34D3DA4D82A3D5C5BFDBC6B0101BD14AB133DFCAA743CCA6F68BC2A46033C5471C5BC8E4127BD9C51E6BC2190AB3CB4B4AABB5FE0353D21309E3D2E28B1BCB7BB653DB837733DC1E4093DA6B21B3D0754A53BAB4C813D6F53C1BC1DE0B63C1B1A17BBB7253DBDBFBC4B3DD4331D3D9A5E493D89860BBDA56357BD0A7598BD41E683BB4C4E08BD21F33B3D03A50E3CD30F18BC3D825F3DAC8AA7BD82389CBDC8C04F3DEAEECCBC4093203D45AA48BD6B6A8EBDE85DC0BCC52A6EBB2B6D39BDC90FDBBB4414B3BC8D92C7BDA70E9BBD013563BDE1707BBD9C50393D1B9695BC1E86703C0319A03D180ACA3DFF66E93DD50A993DDCBA4E3CC5FE69BD34CDBABDAE52C53CE7862FBD733C0CBD8C9F9CBCB1B86A3DB693553CB667983B7FCFF43C93340C3D029A173DA582E13D5766083DCB1495BD2278FB3BE3E445BDC60646BD931A373DF8EA68BBDB6469BC5C9F4A3CB792813CDAE7C7BDA7E8ABBD5A3E6EBC8CBD303D8795583DB7B1F23C472C9CBD0550E6BD5BD0BCBCAED587BC007E903CCBD354BD8D9494BD661744BD33AEB7BDBAEFBABDA7770ABEF38C373EFC834F3C808FE2BCE14BC6BD182C01BE847EBABDF1AF6EBDC42D29BD83D0BCBD0CC3503C5C8BB3BCA5B80A3DC15C9DBCAA551D3ECC59823EAE5A9E3DA72EEA3CC045A8BA175410BE008592BB4F4299BBD9CB3F3D769642BD9064FABCDBF80DBD0D01A23A83CCD6BCF69D093E380B023EF7A5543D9F33A7BCDA4F4A3C4A929EBBEE1FBCBD571EAC3C2B69A2BCF3B389BCC1DD683C691481BDE9C7F8BDFABF0BBE52BEF2BD0360C8BC60572939CBEE0FBC2D15EABC67337C3D63EA513CB647A3BD5DFE363CBBE4CC3DDB58E83C50D132BDE54C9DBD4C092CBE82A395BD813BB23C3EA83ABDC27F963D5A49043E1BB2B2BBA0E31FBD3F7995BDEC1E953C60ABC83C0F3F443D9BB4E33D77144C3D8220153DC741ADBDC77EB9BC6EFA30BDBACABB3DFD24A43DDD9AD1BB7CCD813C65B0DE3CFC619BBD848E39BD80C1AD3D3E2A003ED6B3433D8C88B43C2F8973BD9073783CCF04FB3CB27C7BBC79B48A3DA0E37CBD223812BD46B5A9BC399FCDBB4B77CF3C8B5F263D405A91BA58D6323D2A5BF9BC1405B5BC247FEDBC54317D3C6A8E293D55C73CBCB2B1B23C5C47CB3CF57592BD08559F3CD060343C58D22D3DA31495BD6C295B3DDC50473D5F77B3BCAE36B1BDFCC9E63CC36E243D5DD136BDF896303DC18B8CBCC0888DBC9E78063C0D599E3C0F2269BD6A5E063DD99A1A3D54B889BDCB11053DD6FD16BDAA526D3C1FCBC8BA0CE271BCCFD09C3C6728423C0B073A3CEB7F4B3DF33A81BD7B1C813D6191A33CC465F7BCC04E3FBDD46E21BD0B5A84BD0EECC8BC4CBBA3BD54042DBD925595BBEAAA5A3D61F46B3D1917283DC37F43BD13C6ACBBF6A38F3CC5BD403D0A9304BD2D813CBD01F9863D9407033CD1DAA0BC1F861EBD55E2ADBC9A86853D391A9F3C578D80BCFDDD823D94018A3A517798BD709AA1BCD4DF6F3D42F29D3D891FD73C1DC7CA3D255F10BD282C91BDE3595BBDAF5E33BC4D32823D51FD0D3D8DFB78BD4FAD76BC885E4F3DB639BDBCDEBB67BD22BFD8BC9C8A38BDDFDA883D82DE043E9FF2BB3DB0D24E3D0423203D64116F3D9074973BDE9901BD798843BDC7E5B73DDACA923858DA67BD36D24D3DD47D203CF3C6BF3C8740863C5D29EA3CDA8D22BDE794D33C5F5C003C76D830BD57B9B93BB006A73D8BC1973CE007DC3B1DA1F03DE1665D3E8557D93DA640343D0CDDD93D5AA7C53CFD8DAE3D0F6450BD934D2ABDFFF0863C86380A3D3324D9BC9C9D1A3DADC3D53D12A43B3D19F0E33DC9599CBC930BC4BC85FD593D0C55083D9020FF3C117C4BBD59CE03BD39622C3DC2075A3D1596913D523A9DBCA355ABBCD624AC3C29EB92BDFE4D89BD6AD13E3DA0D2D13DED46843AA104B23C3EF350BB7D80643D5436113DB96DB43D9A243C3DDD30A23D84387EBC66407FBDF1CFE7BDECEB5F3C086957BC898CB03D49BC923D674285BDE698503BD3E27FBDE3C098BC25FB1ABD3B708B3D379CCBBC779AAABD7ADA97BD3CB9E5BBBCDF16BA4769CDBBA015CC3BDF4D633D475AB2BD3496D9BC43554ABD3CEB133D89F04EBC0885ABBBE16210BDC9750C3D5778AD3B93DC3E3D875B393D7E8838BDDB8E593DD182CABC04E57DBC9F5726BD2302453D57FD503DA9416F3DE51D583B9EA6D2BCCACB893D6B9E5A3C35ACBC3D12B903BAB4B019BDC7C62C3C53917C3DB989843D3A554EBDBBD1AB3C7752573D6C42153D43B189BDE1D70CBD032B63BCC7F73FBD80B3463D1B7AF4BC857D043CB06E363DA5A238BDF085C63C5B12943DD51BE4BC6BF8203CCF0CC7BCE5AA0E3D46EB22BCB5BB293D070E62BCB7C2343D02B35EBDBAF021BDF331443BED2017BD06CB87BDF59A493D6173BEBC27B7083D0F36A2BC640532BD95AF12BDE981153DEE5647BD9E714BBCF756583DA98B8BBD4564DABD02E884BC79BDBDBDEFEC533DB3A44C3DE91216BC847D4BBD481B0BBBD7EC5BBCFA0D2E3DF3C6933CC4FCC43D3E4B39BD86FDCBBD60BA67BD11BBF3BD2B2402BEFEA781BD9FF412BD9061BCBBE7D05BBCA4E2F13C129E923D3F6D563D3C86F63DCD9FFC3DAF1F0A3E4FA5F13DA8FACEBD9D343DBB64ECBABDC704F4BD477CB1BA678104BC04AA103DADB8093E8C67553D11F97F3D3B7A26BB63D3103E97D38E3EC90D1C3E5E5966BAD77C843DBE7EE7BDD967F3BDD9A451BD440F293D02E8A63D6939593DE0B490BD458786BD7E4508BE46F6AABC54FE483EA1ACFC3DA366753D94ADA13DF535AABC52C7F1BC4563A8BD6D02A83C5C728FBD5971A4BDAC29B8BD9C02C3BDC0EAEDBDDEA7A1BDA3BA7E3D30C93EBD0D725BBDD0889DBDE436FF3BD3A415BD80F5F33B578182BDF0BE56BDE29107BDBC05E1BC9ABF4A3DC4F8F1BD21A11CBC6E4AE9BCDAC1453C7BD5D93CB4C7383C57810EBD205130BDC76B0C3D83279ABD523E233D02C3873D3567F53AAC7181BDE5A8C2BD9D4D9BBCDF4D47BDCCE9A5BCDCEBA23C3FBD9A3D2C4F593DD166C4BC36F090BD20CA5DBDA2E820BCE444713D02387DBD3283AB3CAA6340BDD968073D489B85BC0D3D19BC653C32BDA2D05D3D52C36BBD2743853D72CDA7BC2F0556BDA00C423DB37816BD88A6B03CBE0B31BD7BF37ABDFAA7CCBC743D38BDE0C58D3C40A176BD92CE2EBD047AB5BC881C953CCE69EC3B14F538BD2607B9BCAF84BD3D14FD143C98631B3DFF3BCEBB39003ABD2CBE1A3D8C95113A3DA8C83CFB5D49BD88CD0A3DC2B5163DD800F4BCCB11ABBC33EF88BDF1A79F3DCE68383DB0FE8BBCF15FB03DE3BEA23CD684633DB603893C8A65163D99DE253D713E513B83EF95BD55AF24BCD7B7303DF3E70ABC218C513DE861843DF1269F3C4008BC3CBEB0D2BC757F8A3D5A95DD3DBB1FB53DB546DE3B54BA463DC1EC293DCFF1393DCFF0CABB2A88853D64319BBAECD0173DF496DFBCE7F64EBD87903ABD9FA311BD239386BD26EC82BC1B8F0CBD765C523D6DB697BD0CB533BC4BA7E23C61D190BD3A7A5BBC400A3E3DB21B98BCA9943CBDB780B53C68C18D3DB19AA53D6724E1BC5CB10ABDB0028B3D6A7E49BDFA9082BDAFDFEB3CA8853A3D47E30EBD551295BAC696653C822D223DBA91BA3C85FA823B0DC5843D99BEC13BAAE641BDC4B6043D733282BD4B136CBC1D764A3D649C0F3D4DE8403B3B0534BBC9DB44BD969634BCC4ADECBC9E5A5B3B4D43A1BD1B536ABD375AD7BC408280BDEAA3C73C25FA82BDF931353CF1D3FF3C189C873D79A36BBD6AB84B3D75709ABD24CC2DBD677767BD4A6961BC8E87FA3C5A26543D080ED43DD09A043DCA7C90BCF57F833DB8FC963D067D5F3D86D45EBD5F7B51BD752C003D04107A3D10AF753C9006A23ACE9ACF3B129758BD1C86B3BCBA07AD3D78DD8C3D145307BD13FA78BDB9AC26BCFE42B33C640C24BD6D683DBD0984A83DEB65CF3CB7245FBDA14630BD4A3892BC182FF3BDE5E393BD863590BD3633283D1DE3673D9C8534BBFA2A99BDE5EDB8BDC1EB3EBDE31AD9BC4A7317BD411CBD3C90712FBDBE3AA43DEB49CD3C91FA59BD77E85CBD20F28FBD3D56C8BCB33D76BDFB4F89BDA12371BD86FEB5BD587F2E3D65D46BBD0917563C8ECBC93D255EB4BC2EE92E3C96A774BB23F437BD26AA27BD6ECECF3C5CE655BC42402C3D6E25413DFF3321BDD275BCBCF040243D1A8BF73D6AE1143D6705F9BA451F9D3B948616BDC18DBE3CC84B6B3DFE3C133DE1AC0F3C4F81C93D023DFD3DC679B03D9F56293CA1CC2D3D9367B93D99C8D13CF100443D98F061BD4E15C93C14312FBDDCAC81BD03844B3C20240DBD0D6616BDB9F5853D0CC016BDEE20D73B7321D63CDCD7BDBDCB8D97BC6D9E7A3D2993C9BC3DE323BDACB3063D5DA1DD3CEC55363D98277CBC93BF5D3BCC08993DD079493DE80E883C310C1CBC487E9C3C83CFC33C00B282BD5062C33C347E55BDEBA11DBDDBA0D6BC870AED3B5135093D16578EBB33877F3D0F3F58BDB93D783D899972BDD460DDBC179072BD0340EDBC63EDA03CB6FBCE3CA562863C26919D3C79F1983BC847A0BCCE623FBC2DDF99BD4E91123DD0E1D0BC7B77EFBC8BAE013D6F051BBCE3D7203D9EF7AE3C70608BBD0F1C003D77E41A3C52EBDEBC577C8ABC60F046BD353AB9BC27FE323CD365363C3D0C493D7BE9C83DC594453D4C9A933DA5F5643C1BF6CBBC8E35FC3C4EB900BDAE5D72BD0F763E3D14744CBD52BE9C3C690564BDBDE0BEBD53E238BDAA5E92BDF61C9A3B508818390B9B60BDC3C4D33C5E025CBD0EE9363D7E84B83AEE5C6F3DD6AE11BD17E857BD7C31313D626082BD52B449BD791480BD0A89BB3CB8A3023C844796BDE0BDA2BDE755F23CEA6E4ABDC4F4FA3C0FE5973BE02D44BD43E4FFBDCB37B7BD006FE63CF81F023E2923E33BBF344FBC9C5391BDA2F5E0BDD5F7B0BD15A93A3D339C8ABC75343C3D7A2080BD7B8C93BD057686BD8AF70CBDD8C83F3D46B39DBD7091323C06A6913D9A66333C1BE4C5BD7C025BBCCA7ED6BC4F1686BC808826BD223D103BE56E88BD1D7A033D7104843DEBF210BDDA3D373CB44F673D19EF913D431DE03C2A85563D344EACBDC0A39EBDE157FF3B8E15033D8FF4E13B4B79BE3D0900303E12E6373E2A280BBD869A36BDC8AC513DEA25963D4175873DB730423D147BF1BC6BA979BD51B6763D83C1463D70C4C83C3088623D3174863C740A10BBE59287BDADE3B8BC33DE303E5F573E3EC76D183EB0778A3D9BAFA93DEC5380BC6E6AC53CEAD0943D8B5F27BDD0A07FBCA6D295BDA27368BDE4DF0BBD5DE5123E10CC163EB16C003EE1619B3DB73B093DC5A9C1BA53D1553CE56890BD4164CC3CBE99813C92C99D3B4DE1B3BD4077CE3B5A5D193DB8EE91BBD94132BB2AB1AC3C501183BDD3227ABDD50D423D7E15253D6A6B6CBD480842BC2AD211BD9AC24BBDD035A3BDEAC17CBD2F9212BD244907BE117A13BE148A00BEE266D1BD202650BD6B9803BC97C240BD07E0A3BB5D78D63A02B24A3D5BC335BCD1F8DA3C0CE79C3DF44661BD6DD6DBBC2BC1693CA38092BD196C9DBDAF55AC3CE9BD143D6B2154BDA2154D390396303DAC2D40BDF83FA23C663774BC03A4EABCC9B0CA3B42255ABD233CD9BC928D6D3D4C6E66BCC2D4C53CB150403DADDE5EBCDF438CBDC2948FBD0D33D9BBEB86F13CCFD20F3D7A28AE3C49FE26BD584B75BD220295BD257302BC229AFB3C9803D5BCF6ABCC3B67D34D3D3BB01F3CD4DB1ABB45E8723CB6C2663DA3279FBC43883D3DFBAAC63C0ACD76BD6C89043DD97F893C0E379B3C28675A3CD1F01DBB7510FE3BE4DF00BD3EA4AE3C8BED113DAD9920BC2D9B67BD81C512BDB9E8673DEC84E7BCC6ADF8BCAF4CA73DB22C903A65BE9BBC18976B3D6E8067BDCFFF1F3D93900F3B5D640B3DCB47B23B1BEFB1BC1886873D55D02E3ED2352B3E39213A3DB116A4BC83B69DBDC39C1D3D76DEE8BC94693F3CB324C93AB6CBF63CFF3998BDF12B393DA3C7053E5FBF0E3EE62B7DBCE209AC3C4E4D2FBD55F8113C808BD0BD82A5E7BDFEC4CCBC39B1873D9093C73C934E5E3D42B1CF3C237D84BC8BF3C8BAB49D9E3C1BB470BD847C56BC15187ABC3CC4DD3C9BE429BD060934BC5018263D68D0963C2A7245BDE7617D3DECAA993D957DCC3C988CA03C9471153D6FE23B3D3A5205BD322F383D28B6A03D67AB563DB296B2BDECE9C2B9B3D966BC9605C63C4BF1E63C9A0972BD56F6ECBC382ECE3CFE8C7CBD1BDE29BDF98C91BD9C82B1BD53EC603DFD961ABC75BC963C2A9B4F3D140E343DD3D387BD8DBC42BD053B2ABD3B77A0BDB2F983BDA69E503D879B63BC2AFEAEBD27C7293C01D358BDBFD601BC73C0983C3BC1373CA621283D91707B3D447B583CF70EE7BB04262BBC73C268BD6C14213DB58392BB686CA6BDA2E8343C9220A13DA0EC9D3D6E8C733DFD1E103DD63BBCBC64DDAF3CB8B38F3D1F2D50BDC31AD33C2F5DC03CAB680ABD03D380BD4002BE3CD0F6AF3CF6B96D3DCCF7453D3D03AC3D0F167DBC39E930BD8380663D5100C1BAE724393D1BB19C3DBD6146BDB81DECB9C623CA3C0136123D2061F23B0971913C582607BD60DE8C3DAD7C91BC69FA68BC4DDE2C3C9A2296BD17BC45BCB65947BDB91F403DFC3F7A3D1F45593D13289E3B79C008BDF60B673D40E5073DD665013DBFDB2ABD131F0BBC2A74F53CC531F73CAB06783D765783BD448B78BD4254793BC0C111BC8E9346BD639B563D3C8F15BD8A36F83CF8500FBD156B74BD455C3CBC612558BDE679C83CBDCB2FBDE61CE73CDA7F42BD41A5E9BB9C3A27BD9C5281BCA5CAB53B0A2FF1BC6547C3BC6776953D27DE943D451A4BBD477F393D2D356DBDD8A80D3CE9833ABD541C6C3B708D62BD94A9B33C5A52A3BCFC29CEBC0EE74FBC975F9ABD421A3DBCABD8833DE032633B7ABED83CB3A5B33C8B44303D728D3C3BA483BBBC967D0D3DE088193DC9A7313DFD686D3DF51F823DA1DF093DCE39073D01821D3DF63A08BCE2AE27BD2245553D2D301BBD6A3B01BEB673FF3B9559833DF8C8E43B7C60F93D4869CC3DB353AF3D8DBF34BCC949103D02BD053E657B173D861C65BDD99184BBE0A382BDA6C675BD94AD923D8448DBBC78B61A3BB23DC9BB7C0C5ABDB7025ABDBDD5EFBC1C8622BC264C7C3C939020BDB8B26B3DA7F890BCDA8F183D19FCE13D38540D3E6AAAB33D5F6E833D62E3643D22CF86BD429F5F3D708A23BD1CECAA3D8D1A8CBC7E3B1ABD060131BDF8CA2CBDA4CC803D510F193D0FD8E23D263BCF3DAFF25D3E6CC9803EF57E933C1DC3D13D2A004C3DB60FF6BBB5473B3DC5A2533CCB1A723D4406A73CE0E71E3C092985BCA25DF1BD7718A03C0123233EBB404D3ED556D23D3359BDBCC72430BD54F3B5BDACBE59BD6F2B01BBDAB08C3DB93EBA3BA5B2C2BDBDD9E0BD644B33BD7BFB963D56C0E83DF0C8903D3C2244BD8C1EE9BDFEC450BD41F798BC65BCDB3C084E59BDB2F0A9B9F465C23B5E532B3DB9F3A13DCC0A6B3DAF10233CD92C823D8F3C65BDB7E231BD48D7E43B8F76E9BCE3F9DABCB96A4BBDC4F48C3D9BA2BBBCD27817BCE32FFC3C2D01CE3DA12D113DF537E5BDFAC2C4BDDAD47ABC0C8F04BC17A5B23AD6DFD53DA5843BBC9E33A03CD143D73BF193403D76F37FBD82B572BDFE8D1F3C310FE3BC489AE1BCB1A643BCDE6E17BC655C333C2278653DC7C5D23D3AFCA5BB9E08953BA4CA463D38EB953CBC3C6FBC8D70343C784921BD719AAEBD42D0323DE3D717BD6A69613D6F16B83D5FF29B3D99B3D73D18DED93D40100A3D50DE0D3C5DC5183DCE221EBD85EE25BD1E6F983C795F4ABDD32C4F3C78D88A3D3E5833BC260043BCDAE89D3DD91B733D872426BC51049A3DA0D10EBC7EA943BCDA5D2DBD62390F3D83AC543CB8B4B63CC543473D76BD02BD38ECC43CCE4396BDB5F03EBB844988BD88365A3DDC679BBD083A43BD30680FBC64DDFCBC8C8B8FBD523C243DBE2AFEBC5AB24E3D3455D73D195E2A3DB2421B3E6D7BB43DFE9E0A3ECA2A573DA3DE0BBD8749E33C81F5F93C5E4F12BD280D7ABCBE388D3D0B24F03DF00FB33D933CF03DF52F4B3D16B9B53D91A1883D587B6C3B3E5E383DA5FC60BDEB8E353D0F8963BD20E99CBD580FAF3D75C1173EAFA9B73D899A013CE09808BE026BA6BD77D527BE4695F0BD1042ABBD858E1C3D746D0CBDD6138DBCF1748FBD7B0D27BA2EE493BB8CED17BD41C8A4BDB3244DBE2F9F7ABD212A0FBE887B71BDA05C0CBEEC74F7BDABC1A1BD9C7347BDF9C68DBD130501BD86C2003D2896243DBC8305BE258D18BE0EE7B5BD1E38B8BCA8785BBD39D495BCC66E91BD394A00BE5FB88DBD8EB413BC8ABC90BDE2714BBC36C0AB3CEEA4CE3B3E268B3CC56D33BC3A53203ECF50B93DEC18963C0C02683DABD2533DE2667B3D5EECCF3CA747693D5A6BCFBC9BBA4CBC9EB5023D6685D6BC0AA84F3D3CC1733DBED37B3DA8230B3E3F309D3D8364003E951A4B3D07653C3DF984E83C43ACEC3C958561BC514789BC4F046A3D2EB416BD86B8DB3D402A443D82E3D03C20E8133ECCBAC23D4736903D2726423DBC420A3E4FF2993DC3663E3CBDA49CBD4F2249BA3A3C87BCF9B2C23D8B93CF3CE5341D3D28E29A3D0EC67D3DFB8BB63D6D5A0F3E743AB03DFB4F103EC2F5A53DD9A4A13BFD9C07BD5FBDA53CD2A4DB3B8BFF2FBDE5130DBD0D0B9E3DF5C2823DCE3F153E70250F3E16C50D3E8308BA3D3F57063EEE86F8BC85C4313D9C4307BD80DC623DDE6556BD80C0C0BC9645833DB16827BD4DF72BBD7881DA3C18B242BDE6CE833C8F61483DB39FEEBCE27887BD4670533DA23DB33C0EC8433C28718EBDE83FF43CFBE1DABB57C043BCFA38CABD0D95F8BC2C9B7FBD50D00ABE64B4A8BCE42215BD4761DABC463CA13C0854D53B6851083D2E9A363D79E615BD41327CBDEFFDD9BCCA9360BDA3A7A3BC5A0ED0BC34A518BDD86EB6BD5E3DD8BCDFE9AEBCFE217BBD7E263C3C672B8FBC305F90BD1B8E3F3D2C9B93BDF86488BD95D0B4BC1732C0BCCA2AEF3C389A55BC78906FBDB8FDE2BB77C8D63CC15686BA61462F3D986CB1BDC4185ABDAB39B0BD3ED1EA3C58FFA4BB5B42A9BDFE8BE2BDA40403BCFA56D6BD09C6D2BC0362D2BD3960CF3CA761543CC1250E3DC19A023C5CC699BD17B1A6BDE88F9CBD6DD202BEA3629FBDEF2382BDB9A53CBD86494B3CA6BF213CD2E43CBC62DA7DBD5C26043D66E197BD81537CBCBEEB2ABD32A70A3DD2DDCEBDF7F9BBBD064514BD999E2DBDD13C8FBDE193273C16858B3D7D66AE3D34EA9C3DA79A843A8FCA75BC030DABBD3C1A06BDAFD7DCBCC4FE813DD83FE539DE510D3EB63AF03DAEBDA03D6742783DC497983D7867DF3D7D9EAC3D6114263E3A8A83BD2CF2093D9CBF623D3296D6BC03871F3E2A8F193EBEC8283E3C0C883EEAFB943DF56DC43CEB34463D30D31C3D9EB3253E9EE4063D11CAD13C3FC8683C75F3E8BC56A4513D960E6E3DF4B50C3D00AA5E3BAC67D2BD8D2F32BEB5EB92BD4C4FADBDB0BA34BD8320A63C2EA30FBDBB3A3A3CE3D3D4BBE3EA6D3B833C47BD29EB36BD9C0C1D3D812A79BDE0C0FABD6EA345BE6C360BBE2F3501BE6FB5873B8362BD3D42CA5CBC06B4DF3CD18D523C1E78A9BCD586473B9F5715BD1CF91CBDE19075BD9BA532BED3D228BEC49671BDC6E23EBDEBC2203DE1971E3DC87780BDC3C5DABCD073D03CAABC373CBC2F77BD1294C03D96BCC83D851FCD3DFDE393BD26A39DBD23C31D3D84A606BD46C500BCF2F59ABDA5D132BD1F682A3D486A9E3B047098BDC804C3BC3C1ABC3D2A161D3E81B6B23D491A553A5209773DDE4D203BB18B62BD4082C5BC0A3C32BD4DA912BDE3CE1B3C761A023D79D88CBD3A58E5BD19960B3C275E4D3D96B6D33D5816FD3DC4188A3D5A0DC33D0DF397BC7AFABE3C9CE9BA3B8DD7EABC7C3083BC7FC902BA024100BC48278CBDA774F43C035A523DB7D6393D5768CE3D145BD53D03A4803D16A04DBDDB7A25BD32CE91BD5E3336BB62685C3B2B3C4EBD38251EB837EA933CAF0D74BAFADE1FBD484304BD4D7110BDBD1AB83D273D6C3D36A4503D27FCE2BCB673313DCB79043D943EA9BD3EC981BCABA62DBD42418C3D3B7E35BDC31406BDC97DE5BC9E5A8C3D4A86683DD53741BDD9EB8DBD54E85E3D82B7573DDB738E3CA2D65A3CA8B14ABCF2B7653D0E47063A559DE4BC00C0D7BCAD771A3CE6F1B4BC2C449EBD06523EBDCC040B3D3556E83B1EBF3E3DFC2C113D78C781BB1728A23C84EF8BBD772BA2BD5C48BEBC7C37FEBC731945BD1DA58BBDCED4C9BCBCD8903AF5A21C3C8C30093BC5E957BDD8420B3D800563BD1550823D0B02CEBC42A38BBC7F9D0B3D98B951BD4F6B98BDCD5040BD35E22E3DFFCB273E7D99063E01724E3C3977443DD4D503BD4D326BBD142D903DBBAFD2BCED622D3DCD49A83D9E6B7BBBBD59EA3D69B53A3E9D3FC03DE93B803D46B0CF3D18C8A23D94FF733DE254D13D7E1E9E3D34A438BDE74E823DBE9049BD7C78203DC7D68E3DE591113E8F70373E257AFB3C7C7323BD20D71D38A0070F3DEE6E223BBCD5E53CFEA5E3BC99507A3DDEF6FB3C7920713D59C9B93D402DA63D0A9172BD92C89EBDBD5BEABDD01ED6BDACC831BC3A1A37BBB1404C3B4B50EEBC758F1ABD79864E3DDF9308BD8166B0BD7CB3A8BD497D8EBD0FA610BEDEC324BDA62F11BED38922BD387AD7BC1CE29CBC6D9043BD015AE23C437462BDCE4A823D61BC99B94A6B4DBD8CB75FBDC930A7BD54088A3D6AED86BDC956BDBD367AFE3C40C3F8BBFEB4C0BD44D796BBFA16D23C279A04BDFB3D6ABDC9EE67BD306D063C2423F23CCAF82FBDE736713DAFF2A7BDE6D6A13BB2EF633D36B1E73CE14A0B3CE77420BD9B8120BC6D0C843DA805583D0266B5BB3C0321BB6797EA3D87056D3C6EFBAD3D208C3ABDF2D51D3DF1FC92BD32D58E3A0A8420BDF4D6443D4D51B0BC2AB88D3CE3C208BC2E0DC43CF33EBCBCE7825F3D641F053D2682753DC7328C3D5578B53DD12D7E3C06E6B53C553C903C0DD2943C6207503D6AE88A3CF297E93BAD23D3BC5388683BFAF6693C9D4E9F3DFB178A3D02FACC3D11E1B13D8690AC3D0B12833DA76D61BD15F146BCA660A4BC57821ABD53459E3C8A00E43C6710DC3CD2E76BBD94759B3D0F29CDBCA575593D45B16E3DDF94C9BC1672C0BA30E638BD61D8D2BC45A625BB3799E0BCDC100CBBCAF503BC9B8C0C3CE37EAFBD59171CBD77ADA43C5C7402BD42995EBC905C1ABD01D580BD9262B7BDF22723BC4A7355BC687DA73CD01DE2BCD5300F3D843EA2B935AA8FBD94A559BDA4D9DD3CA7CE4A3D014A9BBC0C706C3D3619473D68629B3CF75D0EBD4D66BCBC644A0BBD4A44B5BA11AD8CBDCBCD113DB2A6C8BBA330A83C1B3914BB0778963DDC486F3B7B4C463D2A8CEE3A48A1203DBE8E323C7AE650BDD15827BDD46AA2BD8D1A3EBDB4FBF93CF2DE73BD60D2363D7283CA3C5893E4BC615476BD69F384BDADF441BD5A09A4BD43C8A33B461CEEBD6E1541BCC547333D6141C33CB1241EBDFF18FFBC7DBCBABC84C187BD84221C3DB6901A3DD550FDBCC790A0BCCE2506BDE7DBECBD3FCE4CBDB491B5BD945AC4BCBFA69DBDFDEF69BD252D4BBD389A9EBD9BC10BBE3AEC87BD9B31D93DA46A093DF97AB9BCEFA0B23C4403D2BDEBDC44BD9DDCB0BDA2B370BA6D4E96BD43BBA2BD99A3CB3B7F1A6CBDCCB528BEDA5F51BD4EAF013E3CB110BC33BB1CBD5C8835BBA6F13B3DCEEA6EBDEAA85BBDA4BFBABCD3BB71BB552469BD57D6403D46A20EBC21A5E7BD0504D2BD7307083E7E5C5A3DAA5DD8BC4A33ED3CAEAA11BB916689BD65590FBDE081893C8E875CBD7485993C69A8FFBCAA497E3C250163BD013CD23D5328243E73E0F0BDBC8F16BD1F1AC53C6131943D594C49BD3B6207BD37C67CBD99149EBD16AEE0BCA47B81BD727B0CBD5AD6203D68AC263EDC272F3C9174AEBAD11B2ABD442BE33C4BB64BBDDD6D2BBC233F0FBBDDEDB43C16E85B3DCAB990BCA05D4DBD5795353D0898213ECEDB2B3E4843C63D4AA5BDBB47640E3D633340BD9ED0E4BC608D64BD97CA173D6CF0A43B02890C3CFE18753D1AEABB3D1ACD743D45E85A3C2C7A62BDBF3221BD3D29D9BB290326BC4CDAC0BDBB4530BC717124BC65FE763C9E34EC3C2C6BA338F35A82BD01C69FBC5F88A63DAEBE24BDB43537BD2057D5BDC71003BEBA95CFBD4AFF2EBDD69B42BDCEC58EBD788ED7BC4B270E3AF04DB43C250C863B4BE36B3DFD341ABDD13F9D3DC651453C13D930BDCF8DF2BBBF6657BD1C1B113CDE13FDBB718F01BDDACA34BC42959FBD4A176D3D47F6D83CEFBE153D29384A3D40BD453D7531CD3CDDE3363A8F4244BD2162F53CF8176E3DA98253BC14A35FBD5630713D95AD1EBCB6ABD0BC6F938EBCA50235BDD1D259BD05525D3D0A5F513DB368ADBC3E36D93D7A72A4BB0753A13AFF1F343D716D3DBDCE2EA2BDB230C73C305E8FBD627447BC1FB71F3C28CB6EBD5EDE28BBD63C063DFB53913D945FB03DBAE2003E325C153E9821753D2C3B873D37C646BD2618EDBC6B3A8FBDEE29C7BD87DCF6BD9AA4B6BDA08CB13C3634473D6082A23D7D7EB43DAAA0AE3DAD63E23D41FACF3CA2EB983C21AE703B445158BDE0AB84BD95362FBCE234763D3E8D123D0D7CA93DE358AE3DC6AF0FBD94247DBE71E433BEFA5E51BEF4D022BE0FC258BBA07BA93C6E220C3D1E01823D5CFA6E3CB1DCD33D3A9A1C3E2B7D073E2BCBEB3DC30CF3BDCB4E66BE427B38BE387045BE437203BEFF35DFBDA26168BCABBA63BD50A0613DDFDCB83D98C0D23D5DDD913CBEE6D83B16FC403CDE1793BD56A3EFBBE385F83D260DA2BC3B00603D1EB0743DDC65AE3B42AF89BD007FE73A5981653D19E788BD56F10BBD8B8E45BD51A0D0BD5CEBCEBDC40984BD1854A23C0F8C453D7528003ED577283DFA2981BD355EA8BD6CAB76BDA8ABC8BC3618B8BD0459F1BCD945B0BD5F1BA1BDA7E027BEE01CA6BD08F3D43D65C4A93D49231D3DD0F425BDD67889BDB0830B3DE6F81F3C446CCA3B2191D3BD4C27F7BCE8960ABDFA9EA8BD26D7C43CE22C913DCB7E0C3D94FA4F3DC500113D0FE45EBDC715E33C8A55013DD4125BBD82B050BD144029BDE5C531BDB23F9C3C30E9913DD841893D1DC7933D3176013EB965523D811DD6BB4CB3733D8573333D7F3F463CCF564FBD427F6A3CA129253C2C6EC0BB2ADA863DEED6033D83F4BB3D0175623D182C083C15E73EBDACADC63CD825A6BDAF172A3D7932503C2FB0D6BC987683BDEA0A983C40BA9B3C4EDA383C14A3C73CE05B623D745BB63D81CCBFBCDEEFBE3C4A44E4BB6B72B0BC1FC487BDCE00E6BC08B594BD9D6E93BD116632BD78C3263CB5F277BD05A23CBCB74707BD96AE873D28638A3C31D68EBD27F16EBD066C29BDB88F21BD70BE81BD6A5731BD74E8E5BB14721C3D57208DBDA1EF1FBCECC951BD480232BCE299143B9223BDBB41B8F7BB155A303D44003C3DE3639A3B024A873D147888BD86261FBB07DF9FBC8DD5243C47B3643CD9883BBD791DAC3D1BFF5D3D30EAA13C723A193D49B53CBDA4954D3C2E7EFE3CD240063D62BD44BDBF561ABC07F89D3DCC98973D3C27343DA2D7C2BCA9F1B9BAB1CFBBBA8544BBBBD0A3A0BC0B798F3CEAA9643D4AED5ABDD7E266BD0413063D88E3A23C1CA266BC75B8953D050C953D19529B3DC985093E9A85DD3C8740083C40B372B9DD1E03BCD84330BD0070DCBB7A100BBD3C49613C9A279B3CA19C8ABCED72B8BCBD984DBDE7197CBD75ECADBD1E5032BCB6D866BD537169BC9DB788BD1277E5BC0692C3BCDCC1FD3A2B7971BDB6CC1BBDDF73C2BD429EE03CE042B23C780A9BBDE8F50FBEF0E4523D4CCF063B66F4173D141FF43A4C99E53CDC382C3D78C00CBB32980ABD1D85B9BD83F2DFBC34E3953B273BD23CA8AB033D8DA9B83D3ED9983D0E23A13D625101BD02DDBABDBDCD61BD401984BDDDE0853D364A8BBD5F78153D7C76BDBBFFD00D3DEFCF883DA09D523E036A8E3D31D0543D41D3E63DC830DABD9C76AEBDC39D1FBD23E8463DCE8A0A3B3E7E4BBD742DD33CF225633A064B0A3B7CCB313B34BEA63A09DE973D50DBA63DD13325BDCE9A2DBC14F0B0BC19581B3DF72C16BD782BA5BCCA66CE3C0890CA3DF514DB3D104A11BD525091BC545890BD0C59BCBB020B103EEF8EC83DBA36FD3D9A21323DC91DB63C5450313CA28C033D3AF6F33B8B99A73D8A728E3D01880A3D424152BD921672BC58B315BD977C98BCF0DAC83DDC41C33D945FC03D73FC563CD36F5FBD01411A3D6B1130BDB86473BC2F2172BDFE72BCBD1E97183CAB0FD5BB046092BDB4C1B43BE46F09BC74D5283DA29A0B3DFCCAC7BCD639DCBC5E7FD1BC08160CBDA3FB85BD8A358BBDD2EF91BAE0098ABCB0142FBDB63170BDCC84383DC30D813DB148553DD9D7DE3B4A1F6D3DE6E3903DE84EC0BCC02DE7BBC1ED4F3D1CA012BD9683453DD33E96BD2A8F7EBD2986D3BC103F06BDA9B3B7BBAE92043C235DB63CDF1D3FBDF9232ABC676BB2BC50DD5BBDFE73F9BBB7A6B83C23E2903D0AEDF5BABFD7993D564AEBBB4484F23C6C79BA3C2240D9BCD5318BBC3258513D07CB7FBDF1297FBD50A3473DCDC275BDDA786F3DCC323C3D5C1DFE3DA9C4DD3D0FC1103DDE461A3E09FB593DD070B03D32E9283D5F61A83D708D113DE23A66BDA0FE1ABD3D2BDDBC92D86E3D18C93C3D5A3382BD642E1FBDF6D38ABD642969BD55F68A3DCB8A2C3DAC6013BD4DF8213DA8B4E2BA36BF143D7B01303D8026BE3CEAF19D3C7220133D8FF782BC187C29BA5D67083EDFC2673CEA2D1ABD082FB1BDA5D619BE1C567ABDC0F73E3D08A899BC5A9B4F3B65E524BA9CB421BD8E11D83C5BBD3FBBCDEE843DB82BC23DF68445BD800A07BE39605DBD749D91BD7AD092BDF48AB73B907A80BD058206BDADF3853DA2BDC23BDF43ACBBC3F725BD83ABC3BDF5A923BED6A63CBEF6653ABD704AB13DD3CDA3BC4459723C784C6F3D881CD8B95941033D0CCC3D3D1A7EDE3C10BA613D65CC343BDFEA1BBE46AC063C8ACEA13B4190E73D03E4AC3D1536BF3C3DEB963D2F33923DA285DC3C665881BD66CBA83DE623853BC7FB933DD7529C3D946A833DEEE43A3D2E55DF3BAAD7EC3C983C703CFB1B5DBC478613BDE6B65C3DAEF2F33B59FB56BD2AB0853BFF2BA03DD06E073EF240323E2D07DA3D7836523D3B494F3DF41ABC3C8F10FE3CCD4254BCEC0467BCB897FBBCE8D7243B98F345BDC2D842BDF737D13D09E7C43D47372B3E8F46A63CA387313D88DD2C3EC1371C3EA45EB83D7278393CE078D0B95EDC93BCFFD3593D343EBB3C6A3880BAAD34C33C4F146ABD38CD523BD3891B3D5BEB8A3D40C83F3DC002833CD823493D174A143D63BE44BD759A28BD04DE033D711D7A3DB5C4163D97AF3BBDFA464F3CECB392BD5796D0BD8A9FEBBDB65010BE58EB1CBCAA9B3A3DE662E73B27A1E93C129D733C64A5393DB7AB583ADB47613CD5403CBD51089CBDC1CEB0BDAC2E04BA9945EEBD644E1CBCFF7F6CBD3D119D3B7206B03DFE6B1EBD2EACFFBC9CB734BDAA6E1A3DF4AE60BD20522EBD8DCE0A3DA5F88A3D848C06BDA27C273D3A691D3CE88D33BB25DEC7BCA5F6913DC11F67BC2F9D883DD6D3CB3C189046BD0FD180BDD7AC3B3C3446EBBCC037303DAA2091BC05E56FBD9626993B79482E3D5334A4BD8FD598BDFC9469BD146BF73C57D59DBBCE8C5A3D42E68EBD619342BC8E45D2BA72FE5E3DFE7EE3BB50B0993D0C5403BD7C8A80BDEDEF0A3D09EF57BCD7ABB53C2C01F23CF047B63CA3FEA5BD6099AEBD238E23BD82E7893DC6FBB53D451DD53DF089AB3D4E80053D73D6B33D5B0A4E3DF3BB32BC95A150BD13BC7ABD4C72453D06A308BD1C3C333D2590453D845AFA3C1EBEB13D163ECEBCAB459A3D4BC41FBBCAFF47BD215DC13C488673BD9FC89ABC57EF8ABD90A0B1B8ADEC0FBDF2C1083D74C599BB3B36693D0983A1BCA2CB183C93F8653D3B3DB73DDEAFC23B3218AE3D2443E93D5C191C3EA2724B3DE968CE3C0D4DCABAC7F8063DDEAA3A3D0D6EB7BD22BC833D51E80B3DBCA256BD98EF7CBD0EA1023D3263E33CCDA1203D03E5903D746B89BC40C39F3C6A471EBD5AF0CABD856EC0BD6E79143DCA64D93D8B6D853DBE9AE7BDC539F5BDD6C7CABD82C86A3B784A773CE03CEB3CC3DF603D098926BD82ED93BD31AA98BD842D5D3D0572BD3DAA98913DDAA7903D1F871FBE965433BED44500BE6D146ABD9D11EABB0BE6923D26CA88BDC5B84CBD084488BDDE22C03D44081E3D29594ABDCEC7C1BC642246BDA7AB57BDFB8AAABD4C6A1DBD04ED213DA46DAC3D74ECD83C3FF530BDD0D4E33CF2F04CBCAAD6A83B3F1E043E25DE213C1047063E2F2781BDB2368F3B6926D03D79B5BC3D1169003EFB2F653DE054BEBB6D81AABBC49D66BC1218D33C0B07F4BBD4A94A3EFB33693EB95E973EFFBD173E49B49D3D77B8203E3DD2953D20DBCD3DFC97833D0421283D448F7DBB58558ABDA8B530BC74080BBDA617963C29C956BCFBE9ED3DEA78B93D911EB93DAAEBBD3B33C7753DB56D11BD836774BDAB7695BD00C783BCE45548BDED0356BD57B0BC3C98B809BE37B1D8BDBF573A3D6B6EB33BAC675D3C63EF68BD22CACB3B7F49ABBD7B4506BDBA3B273C85E841BC367054BD2369073D51F0023D0DF8B4BDE75784BD6FF6A4BD3A9D65BDA868473C907E0D3DE2E4A1BDAA7E32BD569200BD4E65613DD05435BD309B38BDBAB0283D30D5483DF0898FBDED437B3B99BAC6BC2FA25EBDE77C89BDB6D184BC4623D3BCC7C2683CD99C93BC5AF6033D7CAC513DEC28E2BC1CB72B3C0FB90D3D96408EBD5F4F06BCD17294BDE44A6CBDFF645EBB0B60F4BC2030ADBD6ED6B3BD9362103D51C8D73CB222A3BD3ED198BB93D343BD4815C2BC06979EBCD15CE9BC5BB948BD6635BBBD59F641BC6686A7BDE7E1153CB6A24E3D9EBEC73D50189D3DFB51FFB935A64ABD88F5BABDE3998DBD11BF57BDA8D7B8BCEEB86CBBB74014BC0C27863DABAD413D7BC6303A6EE0B83D2AEA1A3E0223EC3DAC09643A72E505BDE88B3DBC4EBABBBD034782BA97CCDD3D7E01463E941B8A3D0B9F30BCEC4BDF3BB86E65BC1C5A6C3CB46D2E3E1C64523EB820CD3C3CAB90BDC05064BCF9A3D5BC315E033EE44B8B3E5DD7623EBE880C3E2C5973BC6D7485BDED8517BDE00CDD3BBAD327BDE7FCE83CCAC9893BAFE91BBD5DF32DBDD0EF623C28A44C3D5369D53D8837AC3DBE640F3EF2658A3DE55010BCFAEDB83D982718BDD14134BD7FF899BD2E711FBD46CF9DBDF7C6523D0388CEBD116F69BD69BACCBDCC9C8ABCFEBC653D0F46C73CA977A5BC4589383DA56C7DBDC5DEB1BD938B45BDE2B172BC4FEF9ABDBA2618BD016A66BD5CE126BD4EB9A0BD751F093DEB0B163DFDA5163D3B0285BDD4A41D3C301EB4BD1482D7BDF7BB10BD967F83BD50FB79BCB302C9BDE13B4EBD35AE4DBD856D91BD236870BD3E63933D421387BD40D01EBD7920103C442C333C7DB7C43C2F7CBF3B09782C3C1BF35FBDEAB196BD5F473DBD611FC23CCED9AC3D3071AE3D632BB0BCEAE853BDA7E1C0BDAC5685BDA665CDBD13B265BCF4D543BD82A5E3BAD054403D496136BD09EAB4BD68C8413C0E88643C14D2603DD818E53D7F1A8B3D99A5723D6AE08DBC6A60583D44DF2B3BF9AE10BDED7749BD68D9BB3C65CF70BDD1562EBDBD37BFBDC5760ABD33D96F3D89B4563D8A2BE53D7031BF3D3F857D3DC557593B58E2EBBC97F5AEBB74C65A3D2E65E93BC849BEBCDC86FE3C3A2C6CBD50292EBD03EBB3BCE598B03D4CC4DD3C51B817BDC0F6273D2C637A3DACC2B93C36D433BCA22A2EBD04AD903C30F20E3DAE2298BC8910DBBC6D15A83C778E583D8AF421BCE9541C3C20D22BBDD71BAE3CE2C9C6BC0952943D90644A3DD06024BDBABC1FBD31CF2BBD5E9A54BDE4958B3DD0E72E3C3FCA883DC7CC163DB25ED1BCEB06373DCE6DE33C5A04CB3D64CB433D6604423D33F28F3D1C0C3A3B3EE3413D7C3EBE3A46A79CBDDCEB013DD97637BDC68E4B3CDAE5BB3DBEB3303C2407FBBC3D77C43D99C5273DEA6C773D35D64B3DD42471BD7089253D4D49B5BD5FBF79BD7F9A05BE40B46ABACF64763D5EAD893D2F69083C9EFD0D3D5500063DC75E5ABD72EC2E3BF64E2E3B1B86FBBCF0BB643D8847CABD8836ADBD3322593D4532DC3C07757B3D116A17BD0E8BC0BC868896BC4B0A73BD013F07BED8924ABDDA39763C18BDE7BC818B21BD8C67A7BDB869153E85E3BA3DCD9BDA3C0A09B63DE96265BDCA2E36BD729081BB4DA02C3D05B5B83DDDFB53BAA0C3573D846C6D3DF95F053DF02C633C88D0373D8255D73BBAD7A8BCAD4BAE3D7C97093E0BFB2EBD56F4FBBC7DA6D33DC24F413EC571D63D67CAB2BC66D7283D039D213D1CA9A53CB5911F3D6790253DAB10173D96789C3DCEECED3DD12B3D3D50EDA13B7AE768BB3E1D233B9C0FE23C45BD193D0D92A63DC0B4D23C3243F7BCEE362F3DF8541C3E46AC533E3022B63DE608823DB3A3C0BC9EC4803CE861DFBD90A037BDE5DD32BD50CD8EBB3C821F3D9ABEE2BC659127BEC742E3BC1B518C3D0E1A023E9C43C93D79AF95BC67098D3CA7249FBD446091BCF943333C40F210BC11698C3D111786BC351620BAF87DFBBD2E0EAABD9F2DBABD7205C13BCF6D123D57DEBEBABCC8F2BC6AEB01BD3B43993C1C6239BDC2208BBD52F5793D90949D3C96BE223D6060B0BB336D46BD068FD7BD68140BBDDF01143DD9E57D3D583F41BDDE71433BE46EAEBD7A82D6BCA2D06FBD3874813D1169943D49B9DEBCF8A749BDD75235BC52672CBDC1E64DBD1C8581BD4C0FF6BD5C80DCBC5A3CD23D1EA14CBC0D97853DFCF78EBC51971DBD09DFBEBCE699603D48F775BD1154EB3CE026703C7937933CB93874BDC57C5FBD0BED6DBB75532DBB1421E0BBF9670B3D202D373DFDBE883D57AC4EBDBBB65CBD5A9B523D12D0B2BC301A14BD4A9EB23C395A95BDDC0E5E3C4B6B26BDB50893BC49683FBD30F48FBDC5E7C3BC64B000B971F745BDD2439ABB033B9DBD692984BD5769FC3B2D38D23C944B373DCA72C8BCA85B683D9695A6BD79C3DABCB4AE07BD7A1023BD2A349BBD1E3B9CBD7B31ABBDAD3BE7BC7095933D7044643DF4C1953D46DD17BDF503D03DF8AD073DA908373D4368BABDF730B4BD8A52F33C3C13F73C5EB17ABD48CF8DBDB72FD1BB9E11EA3D8374CC3D837FBC3B6DEA4E3C8CD0DC3C4F0C52BDE33AC43C0986BF3DF633863C0A8BCFBB361E4A3DBEF98A3C03C9ABBD75F9DBBCE32232BD05669CBD18A0113D1BAEE6BCA2E9CC3DBDC18C3D8810783D34BDE13C73B63A3DD482853C35C0EBBC022966BC9A17DABCC1FAAEBD727960BE04DF21BED2E006BEFC4485BE0002A43C8971B43CC82781BDB5BFAEBC54E99CBD255671BD18D4BBBC8B9A57BB92CE79BD4C3574BD110981BE95EB60BE430241BE0A91FBBD6B5B16BDFC6010BDC8E2B7BDC6B0DEBD76061DBE4464263C7EAB6F3D2E9386BCDCE62FBD53369C3B8E6E1EBDB7D8783DA9ABEC3D45FE013E6FE5B43D8E2489BAD6137ABD18859ABCE409CBBDEFF0E83C40F488BCDC28F43C950366BDB2C0D23D6BAFC33D3D4EC23DB87450BA54FAE93D1F07873D8A53843C4D77983D6E585E3C72F9A43DCAB5823DD703D63BF33E383DD6C5873CA92D4E3DD316143EAAAF923D6C6021BDC0CD963D91F2643DB9C69DBA921BC0BC16154ABD59F4E93D52A7EA3DCF408EBDF08CACBD4B72A03D8CA6C43D3E197E3D731A073D23B3633DA9C4C03B5EC6E3BD168551BD1CF7CCBC112C35BD65F0013DDD3D5D3D831DEABC5ACD83BD7CDF43BC05A6CC3C56F6FA3AC3E80B3DEDE39CBDB81999BD5122AEBD3DF53ABD44655A3D6A24893D5D92B73CC384663DC1C9403DE18C91BC31190FBA2A4C5B3D7A328DBDE17C49BDF24E8CBD7718703D4595293D5B19E83B864A51BD7B51BBBD1A6DA3BD5240A0BDD204CEBC70003038C35772BD4860F3BB98475CBB37F986BD800749BC0B7C7ABD2113363DCB53B5BD9A020ABDAA5888BB4BDE46BD87DB183DF0B500BBFA2403BDC275FDBB4C02573D1AB4D9BB148E8BBD9AA47ABD06F57D3D6012393D0D1363BDE7CF4D3D851E1CBD296A35BD450A21BB1EB55A3D90AFE53CCBFA97BDB149D5BC5BD6003DFEE43A3DDA1B1C3D1182B3B9338B88BC0D62FE3CE23585BC0D6D473DB57FAD3C3554033D8EFF293D204AE0BB210D643D5CA66C3D6436C8BCD94E54BD126C6EBC08ED47BC3E9699BDC4D721BD9EB426BDF46E94BD54BA8BBCBF85E03BA379393C8244CEBCF040393C5875C3BCCED08EBD23717CBD6B4693BD5885CCBDC9DE78BDDF2710BD8B97ABBD1CB299BDE774A0BD182F34BDAEA8D43CFCDC5CBD5187D2BC6BF48B3C9DB2213CEA266A3C0919E83CC2FA5ABC49F62A3D138B7D3D059E5B3DF3CD833D3A23A53CBE4F46BCD2F686BC566C3EBDFF1AF63C03D824BD037C163D9AD38BBD2E217D3D9210B83DA3CC043D3F01263D205A5CBC6152993D7F5EAD3DBC25F83C5C83663C4733D93B7E6D523C08FB2C3CA6585E3CC8809BBD6E8DB9BC8C94A3BD808D03BDCBE6ADBD3934CABD3084353CB9FD47BD024C88BDD1A5563DAA8154BDAFCF363D276363BDE442373D7B0B393D9B10B43D2CC6B33D837568BC918208BC47159CBBD7E268BD8F67A1BC343544BC20A6713D960A563D84E946BA610C803C303253BCBFB17E3D2C93F8BCD9B9B33D4A30913DFBFA8E3C80E47D3D2F1B933C365183BD101AEABC9AFC333D45A9F13BEA892FBCA59BC53DB683703D52C4B3BCDDB28BBC758453BC300C933DA0263CBC6138CA3B4B6E683D41077D3DE1339A3DB4398BBD1226783DAFB7E03C8132FC3CA8F8193DF83E9A3DDF58913D768AFCBAF88D96BDAA1DE83C58209CBDFF7C62BCA00D123CDDB7213B97EE6EBC96EC9CBD0B3BBC3CEDF430BC862799BD90EC6BBD6D75A6BD9DAC62BD2EFF633C2E672EBD88E942BD6C70303DB040C13CB8AAA3BBADF069BD2E832DBD5FEBFFBC9C1334BC0EEE76BD126484397ECDA3BB9C9B113DA2FA5DBDFBB482BD5A7586BD478B41BDFBEA86BDF0E89EBB51B782BD8616533D74204A3D826584BC69367F3D4BF16D3DDADB613DCD6831BD6874473D1950203CA125DBBBA96D413C602D5E3CF080E6BA985B653D00E3353D92B1213D8246F9BB94A5D6BBD7F1323D85A889BDECDC3F3957604BBDBC73583D4766EA3BE5351BBD587DCC3C7C4C5A3D282E57BDD64059BD4560AD3C66DD0DBC32C201BDB7C11CBD80E6F2BCFF328BBD9DFB2DBDCF1FAF3B117E29BD189886BC1FD1593DDFC414BDF3BB2CBC2C3059BDD02A79BDB30097BD87176C3DF11AA83D296A8D3DD0AC493D16487C3DDE761FBD1484C9BCD79D9A3D70D2A83D33C5903DC67B8FBCEEF03A3D48DC0E3B987DF4BCCD745E3D572DA5BCF93A28BDAA433ABCD17729BD09F81DBDC2AC1EBDD438B9BCE77A013D58E2EB3C2F9BA3BA7C68043D8BAF48BD7D8A7A3C533B45BD229F6D3C49E2C73DFF60393DB7BEF13B99208BBD532019BD16BF1ABC63E2A5BD734DC6BD67633DBD2AB92CBB1FB64A3C933F9EBDE89CD0BD4BA869BCD96F26BDDD4F5DBDA54F55BD61716FBD7A878B3CC33B25BD12A048BDCFD2CBBCA25198BDF6EFA53CFADD68BD379911BAB93E08BE85AE9BBDEE19ABBDD46007BE6A40B8BDE1AFADBD69D5B3BC9E2A65BD124609BDF186333D5E64723CAFA6693C178EBFBC6130963C3762403DF8C617BD469ECABC2F3D43BDA354D63BE11DAB3D11D786BDA5D0213DD82454BD549AEB3C5FB1683D1789A1BC00FA82BCA9D0023D3A5DA13D6C6A9D3D203C213DE3BE3A3E9D361D3E337AD73DB02E133CC5D7D7BCCBB2393CC4EE803DD653ED3C60B887BC2AC82BBC99538EBC8C27A93D4A44393D71C9E63B87CA003EF34D043EC1C923BDD0079FBCB813503D315EB33DE8F0D43DBA13263CDA0C353DB48C01BDC54D603D5662F9B9B428133DE99F333D6A7850BDAF720EBC78E1223C19D1AE3D6590853D9203A93DB3B38E3D3DC1DD3CF61ED1BCCF3B143D7308CEBC3287A8BC564393BD519C873C37CC05BA65CE8FBD24B3BEBD54DF723C646C4ABCB1E7F2BC59E48FBCDEA7EE3C9C54073D3A2B99BD514C74BD510286BDEAA9DD397992C2BC23D7BBBC7EBBBABC20B2FCBC5230BABDB157C8BBD264F83A9B3E05BCCCCD823C05A8D23BBC8781BD58B86B3DA8B7D03C82AA3C3D71586CBC1915C43CBFD909BD71FE39BC8CC1C73C96CD6EBDAD1A99BDFD6DB13964E0EB3C69978F3DA7E0EABA3EB3B6BC60174CBDB8FE8E3D56D26CBA00BBACBC30751FBDE18C70BC740A7D3DAE303A3D8B3875BD24C4FC3CE1285ABC09F3873D9E51F9BC8B3E40BBBC38193DAC7B393BEE1E84BAF433313DDD74F83D1EEC98BC5E1CC23D9AFCCC3DA3ABC43DB7AFCB3C43BAAABB65A33FBDB7D19B3D462A923CD8E1183DAC9E6A3DC6866B3C3F04143D13EA933DE62EA13D3183753D774C4FBD3857DEBC751F1DBCF795FC3C7E5442BDACC506BC0A1DE9BC340774BDE367C1BC49C8453B1A1EEE3BBC1F1E3D4AC1883CEBC760BD71C3D83C559AF8BC9A27CDBDBD0195BD2ABB1CBDE2403CBD94676D3BDF0F39BD0A1986BDC7E186BD2C932FBD22E1533C92D6813D8C1A9ABC4880DDBD75A918BE00518EBDEA77B2BCE2B9EABC8D914FBC51147B3CC46D7F3DC434DFBB1BCF2CBD73DBB5BD85C22FBD2F06363D3B218D3D7559893D7455B53C6A2A13BD5001703DA1FBAC3C87A51F3D81A98DBB0CE541BA505949BD2388353C1EE9273C96FEE13DE041093E3E0A913D14B7833D6DFFBA3DFA590E3DDA89F5BBB22F723C57E6C83CCA72433DA71CF7BC28DFCABC442BCA3D70DC613E18B3073ED13D893DE0B5983A9A4BB2BD013D90BDD8AEA33B02FDEEBC46ED07BD19138FBCFACE3F3C6C559CBC7A19233EA5414D3EE10F353E19B2E03D1A209B3D9085B2BD548639BD55C5E0BAFC824F3D835B733DF7CD553D614486BD1D138EBDE9A32DBCA874C13D2976213EC4C8AF3C6604843B57A3883D8781703D7836FF3CD6F2D63CB4859C3D0EA8993D40F8D83C20FD59BD83BDBBBC43CD6FBD71848FBD43009E3C7E5C6C3C09D8923C70BFC33D253D133D937C7BBC9E8CF2BA08ECCABCE57BE4BC7C30D5BC7E5004BDB4C946BC49D54D3DCDE021BD792B253D6BB9C43C54748BBCF25B8CBC0E6D56BBDE474E3CEFF6913D90FFBD3C6B0C7ABD0615B63C193FED3CE50877BD2B6FA4BDB2B10ABCDB0DA6BD7CDADCBD2B8228BD84C4A6BC1C0FB83C0102603D9300403D7A0B20BB4162B13CDB81753DC2CC923D0590CCBC66B3A7BCA195443DAE80643D4490233B469BC33AD2385B3DB7F3CCBC34EB9D3CF5ACA43C778F97BBD2D5D1BC4C8298BB90F37CBDB1C856BDAEF626BDD7179FBC4D1541BD73B16B3CD68C90BD5E9602BC13C164BD873A713CA58C7EBC6854083C41717FBC4BB774BD3A644E3DA89339BDE21DA83C9D8F553DD1FE063D4BF4843DA0983ABD04846E3D8945FDBBC8A531BD20BD6ABDFC2F8D3DC1E7E53CC9F28D3C2A1C943D85BF33BBB85183BBB91C2DBC536C3CBD6252073924DC09BD75047FBD59D48FBCB9DFE1BD7A015EBC860019BD100F6A3D21A913BD3858843DD5AA023DE845B13D3371A83D80BB713D7FD4D43DADEB813D1B4A173D9229183DB6570FBDBFC6F33B781A18BD81571C3DB8418FBDF7318E3D1C239F3C1E78A2BCBDFFA43C2CA8D83C7531E1BCAED5C53D4DEFF43D472F4C3D7A23AC3AAC5017BDB20BF23C61E1CD3C585B603B48F6A0BBC44EBC3DD007173D4B56BCBD6F08C5BDDA6F80BDC25DAA3DDD62C63DC887973D22340A3BC3EC85BD961A77BCF44C80BD978AAEBCC31B813CE75A303D11AA29BDD131713D7037033E70610F3D878F873D26211F3E0314933DA3BD13BDF6F378BCEE3CB9BD481A69BD42340E3D1F60483DB264C73C4137A83D8F2302BD12268A3D4621F1BB5A1F9C3D234A033E7742083E82BD74BCE220EDBA45AA85BDE02ABABBCC78853D1445023DB95DA6BCEF9E48BCD447B5BDD8989EBD62D168BD4D1A73BC32F3973CE69FF13D7D34F23C86CB263D3A9DA3BD9254173DBC37073DA2BEE33DA6DBA73DF3158BBDBAD1F0BDD8CD05BE00CAE9BD83A19EBD564E6E3DD6AFAD3DBDE0813DF4C3DD3A7565ED3C2629813DD0619CBC737A393D9A80EF3CD70D2B3D91B2E93BB8CFDFBD718CC9BD34CDF9BC78D02FBCA3E5F9BCE1782FBC91F5A9BDC7750CBD7E7026BDF927263D178221BCCF1BEF3C94A404BD82615CBD643498BC6676F53CFE5BF73BB9EA01BB52FA2B3DAFA5133DDF617B3C0080BD3CC227283D1B4F81BC2848043D85C969BCCE38473D151F3E3C8CE14B3D530701BC2611513DDD95F7BB006E613C7BBA913D0566AA3C4EDF7BBCBB89FBBCCD7618BD05B833BC42FD85BDC6E93CBD9C42A63DFDC0CE3C4D5F003D7C262BBD6605913D8CD845BC995BC13CE005E6BB422706BA0C6F01BAADDEC8BCA33CB2BCD7F4193D97BD97BD18F1A5BDA84E2CBBC9FD4BBBB18AD2BBE7EFF5BB85DE64BC993178BDF9C49CBD414B4B3C9B66EC3C040A3ABDF30951BD3E85323D213A4B3CFF5383BD100603BC26B3D9BD7D4DF2BB15A86FBC5AD38CBAF9BC713C2B82593D5D08493D06C839BDF4A2433DB7CE0DBDF4641F3DFF0FF9BB655BACBCFB00053D7A040BBDACADA8BD5DFACEBD932BE4BD3A3304BC447884BD43434F3DFED8CCBCD9E5193DE27B97BCC25902BD81F24EBC5B6E13BDA631E1BC3942F2BC1EF5D83D7894563DA865BD3BB0A053BD0A5627BD2BEC2EBCF7EB69BDED1382BD33A084BD5E857B3C9E9769BDDB30D63CA1FDCF3D0413B03D3401E4BC3C20503D98868F3D82C551BD1F9091BDBA9713BDBCC6FA3CA78596BDFCB8C4BB38DCFE3C5CC828BC7602DF3D8293123EDF17913D9F80C2BD67D2163E16E9CB3D237EDE3D69E438BDD02EC0BD6185AABD8C7A2ABC0046593DE0FD30BDDF94023E29F9B63D436C9DBCF6046ABD3C6EBDBD78271E3E93B8243E01AAAE3CAA7180BD6363EABD05FE7EBD2BCA823C7341813D8CA70B3CFEC1273EF2FBA03D54081F3D7A14D2BD2BEA0A3C12CC243E912C6D3E3167DB3C995156BCEB5BDC3956A6133B3C227CBD5194193C069F1A3B084D703D57CEB23D72B50CBD6BA8B7BB02BE783DC36EFC3D9102843DD2BA31BDFBD6D9BD3B9EAFBD463795BDC7ABF43CB1127ABDCC7D6EBD4809C8BA78B34FBCE8D3093CF77BA0BBFA61FB3D73AC46BDE67EC3BD94EE0DBCE8F49ABD778B5E3DBE85E7BBF0ECCCBC3FE496BD5754EDBDABDA81BD2ADF3ABE19579ABDE00A41BD5D5A1DBD27B578BD8E00DFBD21D833BD36A41D3D33CF62BC48AB80BD5AB51FBD4ED205BC53E1A0BD193FB3BDE6AEE3BDED1B64BD1AF5F6BDB2D1D6BD04AB0ABE239EF0BD9CAD783D658E923D12A48ABD45CB21BC043C193DAE895F3906ABE4BCD92C82BC2909A83D9CE29EBBC00331BD37D194BC55545D3DD9A0B63DD6913E3D2B24923C9B69713D142A90BDAE8F6D3D6B9505BD97F6F73C491A5FBC08CEA13C25C4DFBC6F81193D273312BC132ED3B9217700BD7402143DEC56793D76814DBD7281173D49F9043BDB2D2A3DCED055BD10F426BD8BB8643C936893BDAEA777BD878B943BEE7353BDF4054AB95E103F3A1A04BBBD5F232DBDB6F03CBCD57158BD6176B6BD32BA5ABDF9A8683D0F2BF6BC648F503DA68372BBA2630E3C0FE3953D04470CBDB45132BC1C8F94BDEF0660BD9CC1B33C261FA5BD3523843C4BFC19BD247C06BC2DB5063D2AE2F53B5304083D9C7FCCBD132122BDF3739B3C2F2AB53BB5D0033D3A0679BD7C4E7EBD0FC52BBD9D31343D1009A5BD831D2D3CCBFC453D2FFB613C2F134ABC9662B83DD8F388BC6DD01CBD6526023BCB2454BD155BE0BAABF801BD2E4028BCC5E74BBD57D4B8BD94D7873DF4DB883DB8AADB3DB09DB13CE3B7323D90F16C3D76B372BC7EB4B5BCB735243C98E7783DECD431BC741FA8BC34D571BD7CBCC8BD457643BDD28634BD6236053BF3279EBD8FD32BBD9FB68CBB8CA604BE6FC59FBDAD1A1ABEEDC73EBC871D533C5CBD07BC88B3ABBDF1AEF3BC02C31EBD7D62A0BDCD85BDBD3B406ABE171720BE4AA4D3BD3F06ECBBD54FC0BD682662BD5C7694BD5AB2B0BCC2D5383D695781BD62FA19BD3896F53BAA4F343D0A86C93C7E2346BD94B7F13CF9EFC43B119E4F3CE95FB7BD49C637BD531C723CC8BA21BDEFB3FFBCB6240ABDFB0B4FBCBF6C9CBC5A14853D67AA2EBD50C638BCF370043D93F08A3DB30712BDB1FA33BDEA83413D2F414F3DBADE0ABC9467213B3C4E92BD7C0C36BD199D793D461A453D9095ACBCE2EA0D3E52FCC93D04A0C03D4CDA66BC8A9CFA3A84B6573D0A09BB3D76B905BD0C90213D61E9E7BD6821E5BD34D31639E0B9EB3D868EBF3DE6B1203E121B873D6073613C27F28FBD50C47B3DA00C10BBB282993DAF5562BDCFC8F5BC35E29ABDE904753B45E21CBD6F8684BD02AC87BD96A7E5BDE1A305BED32B02BE4C14D3BD2ED4963D0552A2BB5BFD373DF66DA1BC6DB6343D31762ABD4B58AEBDD4ACADBC9543D6BC5018BDBCA1032FBD4222383D9100A0BDE2952EBD0AD42E3DB341363D9F650FBD0269B5BA66EFA63CDD1A4F3D627E67BC643B043DFA4758BD059EEEBC0EED303C29B592BBEDD5063D552E89BC3753363CB0DBF6BCFB3D1D3D4125063D292C0CBD39FE813D6B180E3C6D19F13C4769263D537B7ABD645B463D218A57BD6B9C9B3C94CC033C88C2B23A8BCB7B3DC10C313D9B9871BD15D1473DED2FB83C5736D2BB19BB2EBCE8B02ABDD65826BDA1FC213DB2F7163D113B003DB4A6B93AB9F499BB5ECFEC3C2EC5353D5F9102BD81996CBD0C17793DF80E78BDA55479BD766903BD96970E3D59D98D3D918013BD3965AB3C41176EBDFDBF693C68B32ABCA63221BDAB5A7F3D05F61B3DF316FABC24106CBD329CC9BCF8EB1FBDD447A4BD2E2B06BC3655D33B03970A3EB23B9B3D93B0973C6E1B0ABD3172BA3BB4CD34BDDD9D06BDEA5F5C3DA1F807BDE42D94BD77FFCABD486204BE6846EBBC4CCDC83D400E11BCD07AAD3CA89F3C3DBA4C3CBDA346753D6DB78A3D678A363DC441343D85A3E93CE9579FBD3622763CB56CAFBD9A304BBD8ACBFA3C70178C3D7D6FF53DEEDF9C3DEB9ECABC2EEEFEBC18D2BBBC1CA4703D3464523D20D8293CC6533DBDA9A92BBDC7B1323D91CF043EB5CE343E35354C3D9CDA713D3A35C73CA66F87BDAE5F1B3CBA8901BD0C8C923D1AF35EBC9E130EBCFCB2ECBDDA4A02BE00211FBD4721EA3D29365A3D90052E3C358CC2BDE372A3BCAE1883BCF9F09FBD4261813D6505503D07887F3D1562D03BEB735DBDD8EED8BD5EA9D2BD0BCFDCBDECA692BDD391E33C12ADF8BC059B9ABD8D731D3DEF1B1C3D319B9EBC4DCB673DBBB7E13D2F6C0B3E611A8C3C90ACCDBD7C95E9BDD26AD8BDEF37353DCD09683CBB9C05BDC9208EBC2221AFBD33B14A3D91987ABDB41C8A3D58A36CBA1FF3473DA5BCD63D31DE3F3DB8BE6DBD4817793DE2E5B23DB29A0C3DFFFCA1BDC425FFBD54AF31BDC399FABCFBBA623C7BB09CBC5160953C2178B13D5951593DC0BC7E3DD3F2353D9ED473BC408483BDB389C4BCC04D10BE9273893B6D32373DA6B5A63C344AA83C53D50ABD88192DBD9A8D033D1DE3383DD374CA3D984D71396F571E3C9821B4BCDF1DD6BCF9761FBD227D1EBD2E75C3BCA93BECBB5C6B2EBD40C5883DB6C0833D3896C83B5167903C9ADA1F3BD4F156BC5E0E8B3DDCF17B3D7E97933DB9EB88BC678F153D7D21F23C3DD9C6BC8BBDE1BC30B0E43C332F2FBB05CD80BD224C84BDDC801F3DD7A745BDF11F413D54B2D03B4C6C043D769D0BBD2D3597BD90D89BBDAF079BBD3A9ADB3C857F0D3CFE78D5BCDA464D3D5566A2BD8A02C1BDB239F8BD9C5C78BD2FC770BD65C506BC652BE0BC322391BD043C1ABD173378BDE7A88DBD77A32B3DE09F76BCE6578EBD60C1293DA9467B3C6F5A073C5342EFBC3D86943C20C2703D8964C8BC26903A3DB4CF1BBD3ACD02BC18F7A93C260F493D747E49BDC444C93C48760B3C467265BB610906BD27A5F7BD8F7428BEB37E32BDADFDAE3D473BF5BCAF503DBC16660D3DCFE191BD25D640BD81FF883CCBB0953D98B24FBB3E510EBD16EA19BD0B768CBDBA24F83C461DAB3DE0D50B3E690159BD70318DBDC7932DBC6BEAB6BD6B0B393D17C4EC3BFDE1EF3CB137003D3446243CE4DD083B8E69863C48F4523D6CD3983DC6E4813DC5B0EBBC980532BDAD7BC3BDE357F5BB1A468CBDC5ED2FBDC53EE23C589F73B96C20973CD2E4953D49FF0BBE179297BD8E91B03D5AE3A1BCB7ADA63CE9E3EEBC1D348C3B035062BD8C2A98BDA6FB113D5F6E0E3BFDF9043DAAA0EA3CC028383C97AC54BE170993BD9E450D3C9F848A3D34A9093ED4AC8A3CEA6180BC0079903C4A208ABC117C40BD5F88BF3BDF2C893D4ECA563D98E4B63C207287BCAA817DBC6218FC3C849EAF3D164FCE3CE4474FBA52AF57BD1D336BBDA36D86BDFA9D92BD275925BDA0A6CFBDF597563C8A2861BDC84016BCAF75A03D587DB6B944BED2BDCDA6D5BD4CBC3FBDC7B417BD303BAB3A17A6CBBCA5A944BDA5D7EC3C1AFBE6BDE48C86BD97A8E2BDE5959ABDBEA55EBD41DB26BDB8D72BBD6BB48F3AB196F8BD96C6683C753AF4BAE4C4FA3BF705F83B040E8ABCFD02F83BAE59BCBC8A890BBDDB735EBB6A5F553D17BA07BC3F13C03BF8FC3EBC01B829BD784E733D2659E5BCA617C33C4189893C589EB138448A81BC8BEDA1BDD7C12F3DEB97AD3C1D1B6BBC6BBE1BBD7C5B7DBD2C62BDBD1E383F3BB7F705BC0F4F83BD875B81BD7F1098BD2E3508BD2EAF11BD0AA5363DF66CEDBC7A73463B7414EF3B13D07A3D6BD387BD8CB38EBD1FEA3C3D1A7C423B473583BDDAA978BD1B8BE4BC25EDEEBC3AC9333D865FCD3CBF9313BD48D2EFBCBC065CBCFF85F13C7C3A65BDA8DE8B3DB11714BD174FE6BC56B277BD2ACD0ABDE4BB5F3D30988EBDDD07B53C69F038BD0E3621BC859196BD2FF5213DCF09C7BB46BF23BDE4703BBD88A982BD530F70BBF1716B3DBD568BBD50959FBC7E38113DCF6474BC66BC263D629D51BB2B72C2BD984975BD86CE713D77B69F3D5481C73DCE90153D28D0EA3CA915FCBB0D5B903DA7F8603AED572CBD2FE33D3DBE6C29BD49CFBFBC0EC500BEDA841ABDB2A3CC3C45CD383D541AE13A640AA3BC8727253D8DB979BD467E88BCD37D653D6924823C72301BBD27732DBDB7380ABED7C820BEB8F1D4BB1DD8023E5953E23D1BBA04BD99A436BDBE19EBBC7DC828BCF34AA0BB787A63BDDA8F3FBDE022263C17063B3CDCF9C9BC2B8ED1BD874DC53DFAF3FC3DAB00C53CAAAB553CD35106BD6F2D8D3B34EF3F3D0F904CBD9CA5373D284B163DF89193BCC433BDBDD8C612BDECF704BA80B0D93775D4C73D6A891DBD80F46CBDB3F246BDA90387BDDD61FBBB322239BDCA0186BDA1F6633C2C003CBD1F04F6BC7F5E64BCA7E540BC958E963D80B6BF3DB460413DFF6D95BD332D56BDE18BCE3C05EE8DBD4B460E3D787B84BD7B0F26BD75DAE1BC8BFE76BDD977863DA5B437BD02A84FBDF19081BCFC09413CD4D297BD70F7ADBDFA2DE23C54330FBDD09E7D3A4CF51C3CCA8FAEBC85C802BD82B8FD3BD956603DA916BB3DBEB1C2BD2920A2BD594BA1BD32F769BD4D87ADBDDDE75C3DE957013D1BAC553BCE87D73AAB0F223D411609BCF2DF963D3F41B93D6A98453C4BDE0FBE998CD9BD9843CDBD31E7A0BC19A90B3D36B3A13CC7DC69BD8E42A8399C912CBD013BD03D388EC23D27ABF6BB20CC05BD1F9E1BBDAE6365BD250CF5BD8E2CA9BD84121DBD41BC03BC3512393D875A50BCEE940A3C0424793DF1138B3C962456BCEDABB8BCB512E9BCCEE1003DD52B7CBDD585FD3C4BDB81BDDD6B113C40845DBD1F5D90BDE5F3C7BC13919E3CE4D5223D60CE07BD8C7107BA1CCE62BD7618943B8699C4BC4F32B03C314F47BD98FFD53C03C8AEBC895776BDCEEA1F3D3633693CD2BEC0BA311F98BDFAFD023DBF9A85BD8BB341BDBF53FF3A9234293D5C239BBD3DEB5EBD1124D93C021885BD230983BD67F693BC56BB1C3C8A5430BD2EB95C3BE8F3663DA8525FBDF6EAB43AEC1B59BD0AEFA13D94D2E7BB785DBF3C8B7F853D558FB8BC69EFDCBCCA8A86BCFC3E933B8E36393D1B3E93BD098A1D3DC010693D2AEA623DCCCDFCBCFAB5C43CD30D49BD18C0C2BCF6E5CF3C51E3BBBD8D8CE0BDA7F0423D0791FCBCE2148DBCE42D5A3DAE67D03DB2D7233E31CCD93D5735223CCCB415BDC2E381BC0D29D43B03D3EB3C11B71E3DCDA2DFBDA819CEBD05EFD53C8C820E3D87C77C3DACDD433D91F4B53D23783D3D7BFFCBBDC69FCABC00030E3E1EE3503E443F243D08C0B0BAA48DA0BCE2F6FBBD8F95313DC0E2DD3C248D913DE056163A51118D3A75470EBE2385BDBDF057C9BD0EDC053E83028D3D0C0DBE3CDD884B3D9A1DD9BD1B8A6CBC0F941C3B503F73BD2C2E5DBB91A8DE3AE9C0DEBDED9490BC2D52E8BDBBC827BDA862B9BC98B028B9E1C1D83C756382BD728DA4BDEEECA4BD7D2717BD0CC868BDF3BFC83CFE9AA2BDBC5371BC49FA41BC2D501C3B808606BE86C8913B79F6AF3DBD1FBCBCE7F1B43B4AF306BDAABD8C3CB607463D8D2D553D99331D3D645D843D03E72CBDB73970BCFE7BB4BDC25620BDB6FEBA3BAF6E1A3D84E3A33DF5BDEF3D5C97CD3C75D387BDD5692E3D7D9144BD5FA3B73D807FDDBCA4B7C2BB23895DBD0D09C1BD6229703BC98A46BD7E7B673D206E593D1307C2BC801A32BDEFE73DBDBB42E6BBE7574BBD8A8A6DBCE4D5A93D68EB013C773F303DDE78623DD0A9B13C26CCBF3B36DB06BD524FFA3CA03A6BBD6AFD83BDBAC9E03CE96E76BDF0FE8DBDAC97B23B413DB93D60513B3BB7A4CD3D8CA1B43A5392F63B1CBAAE3DD264933DBF863EBD3B7491BD2087B9BD76E56F3C7530B93C9E4B593C7E871A3D594EB13D3274823D3BA0993D0CED213D5964483DF4F49B3DF8128EBCBE9759BD535746BCD19429BC23FAA73B88BBA1391A5F543D0100CEBCAF688C3CBC8C05BDBF132BBD2EB20A3CB0C60ABDB5BE8D3CD4DC6EBDD3CCA4BD5B7FAABCAB95BC3C29E4E83B6A234CBD7C86A93BA4C4A2BB9DBC8C3DB3B86F3CCD08853DB0E80CBD731C2C3CCED2883DA4541C3DE69D65BD6CDC933D7C388C3C590D5D3DEA10AA3BA5939E3D3B14723D71C88DBCD4091D3DE63AACBC7E0E433D58D7E13C786ED53CEDA674BC3109A0BCA8E0B8BCDF7D71BC49C7563DE84E063D8D209A3D638127BDE5BB293C97E7DB3CACE1093DA8852ABC837A52BDBC4F4CBC8F31A7BDC07C863D333B49BD1F2F64BC992B523DCC64893DB14B22BC2ACA4B3CC67A563D799FD4BCD5872CBE0F1237BE40C317BD61B7DD3DEB06483E8EA62D3ED3B036BCCF9272BD728192BDDECB18BD0B0B5F3B12D84BBDF471283DC6AC5ABDAC9409BED5CB91BDB364C23DE4673D3C142ADA3C7E94753C7EB2AB3D6F250F3B6F069ABDC13C65BCF4B7843CFBF292BB2E85A13CE0C185BD04A5843CEE54A13B52369A3D46F9223DC4AAE7BD0A138EBA2C22293D2EFA823C18ABD23B745AA73A320B803C26F9F83C008D303DE68FFB3C15C1943DF8AFE8BDFB472A3D2FF81A3E9604363CB149B63D02C49F3D1A47143D21C914BD0F5D513CC5DFD5BC8BCD80BDB1F043BD38BBE2BC6A8DE4BC9B8FB0BD6DA5283C1F54F63A4C4D22BBF0C4D3BD22251DBD78B192BD972A083CD79063BDFCF265BD3BCCC33C770E67BD161A86BD9E8675BDBC86293D60893DB9D738253C2918B2BC46340FBE78A803BE5F913DBD9E67E73C1D8E413D185FA13BF2862BBD95C885BD44B8983D7A47383D4CB7B1BDB0E305BDF237393C298EA43D8A3DBCBCC71387BD4934A6BCF7E53BBC79B1A83CD4A0CEBC1BDD7A3D67DCD9BCE6EE5C3D31A4313DFFC206BD4A013FBD22A4183D7A0FE0BC9DB30DBE81C0BFBDE0DD68BDE708E5BB323313BA655115BD4F9171BD1464C53CE32709BCC34D06BCD4EEC93C0D32B03D00FED83BAC95A9BCABA2DABDD53E82BDF23F443C335D9D3DC8DBE1BCA7D522BD73FC20BDD0B645BDE79FCD3C4AA6473CBAA64F3D1426B13DFC791E3D26BD2ABD34FD7DBD2D14D53C4B271ABCB282943DFA7953BD411D13BD6A1F413D061D61BD2A5622BD98F99F3D05A9793D0C3BEA3D7E9EF13D02FBA63D87ED8E3D2859CABC7273613B27C7223D39A37A3CEFFE7D3D93D1D93C6ECE063DEFB7443D2BE683BCD7187F3D3C54813C721A9A3CC88722BC0F3099BD50C738BDA7DDAC3C8952E0BC670C2BBB555B1ABC3E2C88BDE6422FBDBF16013DF7B800BD7542E2BD312D3BBD15BBB7BDCE7722BD82FD39BC7E6ACABD58F2503D35B405BD6095F2B7308AC2BB43E5D23C8AD7A63C8486303DE806CEBDB14C9CBC1FBC503DFF72BA3DF16483BC92039C3C16AED33D0273E23D6DACA83A6A600DBD466E4A3DABB421BDC51727BD3510D9BD119ADABD998116BDE470913DD8EDA0BD3326533D9CA4BC3D70134F3DFD5E3B3DE8160D3D46CEF73C1E69363D53EF89BD1EC2B03B80B1BFBD040C193DD61710BD8DD0C63C8902FFBD08F1C83B980BE43B49F1CABA20F8133D87E0AB3D9E8CE2BCBDED2ABD85627DBCB90421BCD833363CC0C61D3EE68DDF3D10740A3ED92E2E3D78A1A5BDECD3A1BC2DB689BDC3AE2E3D5A3D803D63581D3DD18B60BDBB2EC43CEC2F543DFBA9E93D4FCE103EE00ADE3DA3390B3EF384703D13F58ABA124DE0BB552EAABD94499F3D0D2113BC668DF2BC80434CBD5AE43FBD0FC7DE3CE4C3CE3DEE39D7BB7795EC3DFCCABF3D236A333DCA129EBCD6995BBCB2C5873D60F616BCD503123DFBB1123CEC0281BD6CCB6CBD0A382C3C9E1D843D730BAF3D688DCE3CB0CE8CBCE8E82ABA9928BE3ADD9A10BD53353ABD73CB41BDE85DA7BD124895BD89C05DBD12AD85BDC28C96BD7D818ABD983558BD4A510EBD513094BDCC6A9BBC48F1023DAC38E5BC49A99ABD38E831BB013596BDBEC6043A682368BDAEAFB6BC6DCA883B0F8B6EBD7AB3FF3C0754CFBBF38F7EBDAF77E53CFC15363BBC1D81BDFB1EA2BD8ED004BB55559ABDDA3B77BDC6D043BD2FEDBC3C72D94ABC51708C3BF76553BD92F0F13C16F3083E397FBE3DCE460ABC4E6EDF3DDF0B333D580F45BD22656CBD2CD7843C29CD333B5411B1BC9C06003B766BE6BD9D39113C321460BB98A236BB722367BDEF9E553DE10D093D415F7ABCF49A153D1576313D7E4DB1BCF5DF9DBC2980793B6E7182BC7BB346BD18138ABBAA45A7BDE75ED6BDD796F5BDE36AD2BC340988BD7AEF87BD2BC20E3D8CE4713D2233BDBA8B0C90BD25F4B8BC6F17043CFB3B413DDBC6323D1D0431BD13E04A3D6F993DBD5FB190BDD3A495BD5D73A7BC1549D0BB5CB583BC157E8DBD22188E3B13F3243DB3861D3D03FCB53CC6B7293CA98CCF3C165C5D3D8C1849BD7B47B2BC00265BBA0AB706BEF1A21ABD6A5F07BC3597A5BCFFD8A3BABEA5083D547681BD0FCE483D1168B23C5DC4D53D319EF03D846F073D970DA53B96B952BDAA4C6BBDDD5BC9BD30E4B3BB5111293D8EA380BC398C5BBD93917DBD783D1D3DDE134B3D7253363D40F7253D0CEFA43DE498143EE28EEA3CAE43853BA6F9613C5294133C0BF3503DAF5B4FBD6D20A8BD8D1D633D6E3D7DBD856E843C1C3F783D4A84093D1DA9D53D5D46283E2B44153E34A5C93DB552FE3C1C4D213D9A7564BCD1AC29BDFA9692BD325DC13B6F4522BDC66A6CBD94D8083CA8271ABC7D91C3BD6FE62EBD5B39673CE74BB33C4993F3BDE369A2BDFDB1133D3930E7BC92B7223D96A4103D39F06DBD0A77B23BF1CC16BDDFECF3BD41A8CDBDBD74CCBDEF1B43BDD9D3C6BD9CF163BD3DD620BCC4F52ABC62CA26BDF4B3C03B14BA5A3D4BD89BBDB012523CC0A5C8BDF2AB1BBE393F2ABEE55A23BD36EC133D46C4973C645FB9BC25A285BD1A7536BCD97A1CBD9E50AE3B639273BC703CFABC20D829BEC2612ABE8D54D3BD18741FBE66046DBDEB95F83C389C6CBCD4D715BD7AC682BD868C5C3DABB2ACBD38248BBD0A82C83DED9885BD62D4C7BD8595FABD75620BBE4D1A9BBC3F9EDB3D9D1A7DBCD9EA5B3DF1FFFFBA263D37B949E38A3C2915E63C9D61173D7B88553DDC17F43CF828F63D5364B13DF480763D08FF443C29116F3D110B603D5A66B83DB06D023EA31ECA3CF60E86BD177C04BDCB8EEFBB268E0ABD297D0A3E5E9F223E04CB143E2634D23C419F973DDBC78BBDC6C2A53CDE44933C16C797BC7FF532BDEFD17DBB654F243D9363013C64B488BD71C6313D105A273D0883123DCD83B53C4209073D65FD293D42ACD7BCD11AACBD69D19CBDE13A8ABDAB5E98BD47664C3CDF223A3D5D2684BD23B57DBD4CE41A3A52F8D83CD6045ABD395E1EBD852EDF3A38C49FBBDF63073D1650A5BDD388E83C0BF397BD1BE11E3D91A8243D2F073DBDB73E9CBDA8176B3C74532BBCF42C1EBDA035B439F6AE6B3D6FB542BD418B443DC35478BDE79933BD07A26F3DC322523DFCA6E0BC9BD87E3B93CE40BDB9F187BD89AC823C7FB88ABD1C3989BC8BB360BBDDD2273CFE7BAEBDE08AA1BB6EEEACBD97E686BD8FCB6D3DDAFDAABC92E399BD85B567BDE721F0BDEA009CBD6E9E36BD71ADB2BBF3CBFDBC708A323D99AADC3C33A70BBD54E586BD08B5F73C7DB9863C3FD982BDA20DFCBDCE50E6BDD7BB57BD7955B63B2247B33D9E9AC93D4632053E04DCAF3D953E223D1E2A48BC7B223C3D6EA95EBD1B31233D79BBBDBD3DB7A3BDA3691ABDB202B63D652B7B3D78601BBA6D5048BD732F6BBDB2C32D3CDFDE663C65714C3DA5B81C3E5967193D3D60D6BCE4382B3DC2AE8DBD9A46C23DBD2DC43D41941A3E91AC8E3C14EBCDBD31B925BE4B9B10BE109DA0BD48F3EB3C97547A3D075378BCB41219BD02B908BD3EA6E53BE4298B3DEDDFA33DB4F8063EE4F0133D7065D8BCBE31E1BDFAF8B6BD88EDA5BD1A2C9A3B7E2953BD146211BD9668DB3A546CD1BC3AE9173C2AF0723DE396043D574F98BA32D9833B63B025BED64005BE6EBCA9BBB209A43D01CCE2BCB9419D3D088A5ABDEA679A3C7C40243C8B1D243DB81784BD04088ABC55D757BDC3C9A5BDF65E41BEF5A7EBBDA1EB2D3D44642D3DE6E2D53CAE1678BDF7FFE33C1F655DBD2224C1BD97FC0ABDB0893F3D6FBDF53C248887BD5A7A92BD5E6B8D3C9D390A3D30EF9F3DE37CF93CF6AEEA3C0A42943B0CEA96BCA4F611BD2C4726BCC80A7EBDF5970B3C8C5A8A3D4D998C3D58850B3E5C43533DC74FFC3C2B94763DB91E783DAA6672BBFE3DD03CFB4816BD68CD763D2474B8BDCD9FA6BDFEC2E6BCAE11BD3C0EFDA53DB7D09A3D94BBAEBC4C2E39BB2F09123D9247453D847FFEBCE5C8053DCFAAA1BD3A997CBD6DFCD0BCEB6182BC4BF396BCECFCF1BB5248063DDDEB7EBCDB2D163B281113BD89B89FBDD534F13C5BB5F53B1AF07F3D26353E3DF2204E3CBBB005BC2926243D334CD53C0B785F3C00DA1A3DDAE267BDC04D3BBD864583BD820042BC41DB7DBD9CB8673C63C382BDA10696BD46A7873D87E0B4BC6B0027BD80F7513D55DE283DC51D85BDA22D09BD17FF023D655A1CBCE5AA673DC7552BBDD841733D5D1415BD7F62EFBC43A8F33C45BD38BBEECA84BD39664D3C1FAC0B3D62329E3B33F7303DAA11873DA5C38EBC38F308BDC59C68BD9BE9873D3DD61EBB4053853DE3BE5DBCB4EB9139BD7DE03BEEA648BD041E50BD7C19F23C7B7F24BD06F044BDAE1C51BC4C4C493D443D6E3D6BAB533D75157C3C743AAF3C09579EBC4F776BBDEA9782BDDA86703D3C2384BD21679ABD184D733D37E96D3DDDDC2CBC6ECA9EBD838327BD000D123DBA278D3DCCB37C3D676A3FBD662A5EBD673A363D68035ABD84D5983C67C55EBC2F7DA63C64F37C3CE041E8BD33F8D4BB8B9C853DE873AB3D0F7D573BB89B7DBD4A8110BD46CA633D71C635BB537C4D3D20418EBD20865FBD19161B3D92F776BD1F6588BD8DBBA03C4B29C13C107C8C3BA059913CD3C7B83B2986753D2B96833D20B40EBD737D693CE3D394BC3A95D43B2AF994BC1A8648BD74D031BC68D19F3D3B0E573D302D3EBCFA31603D27FB9CBC552BBC3CC481D8BB85B780BA05B0963B131FE73C156966BDB8A8063D9C3448BDE47A22BDA47C5BBD3CD708BC00CE473DE5EE673DF67155BDFC2E923D412465BC838B1E3DA9F66DBD5920973B9E1C6C3D13C0473DC3C8843D2BB92C3C10BD09BD9E0E51BDA62B19BC79BE013D33BF48BDCAF469BB3A8E1D3D44E8F0BC936329BDBFAF023D7A257D3D8F95C83B0053F93C4941CC3C7A9D60BDCFE3373D87DE83BD130C81BD6B09ECBB6491F9BCE774823D6BB3813C4989C73DE1E9C63D6BF4ECBC386B793D9053953D474CAEBD2426F2BB248A24BCE3CE67BD0DAD9F3C2AB6953D9A305D3B8719873D76241F3DDD12E43CE0A21EBC92D312BC974C963D6FD00F3CD5A363BD00513FBDC2288D3D708111BCF93E80BC948FC93CBF93ECBB2EEC803D66D9493C2A9B383DFC87A83DA852F23C24FB89BDB4333E3D21CFEDBC29831CBDC65D843D1983E23C3EAAF8BB7EBC323DE56E063D72D245BDB6916D3D82AA70BD401D36BDD55C7ABAF49A75BD5F327FBC61ED2E3D2B2A5D3D3B0264BD14E33E3D3859453D073DE3BCFC73653D8FBCE7BC8D997E3C492FCFBB98CD603C27E6413C749990BD7EB79BBB54FEAFBD01655ABD892E5EBD82413F3D7F778CBD8D8B89BD68E9E93B33D265BD2DB0A9BD4F8A55BDFD5EF93CEC03F6BD2C8E34BD72C2B7BCA2A3C8BC0EDB3EBC5051643A657C843C7CE3A2BCC7D817BC4D6A903CD1A8423C046CD23C2F05DA3BF1C9ADBD5FBB32BE9873A4BD019935BD482980BDCC9601BD3D40223C43824A3D647930BD7CA9023D34FC98BD97B403BBDFABEB3C0E3D61BD4C8233BE504146BEFCF4DA3B4AB0D2BDC94A06BEC00AE838F38B953D570F003E466B553CD5137F3C994F9ABDC5405FBB41358EBD50FD20BECE1E46BEF3841DB96F94DE3D388C353D793CB63BE1F19FBB4A470A3E0D400B3EE2C50D3EAEB772BD4797AABD8E5151BD4767E63C7476DCBDD9D7A7BD20000F3D77066A3EEB13E43DB5CD94BDBF3B00BEBEAF7FBD0CB982BD83B9EF3C1CE937BDFB306DBB1BE197BDEA1B343D44CCA7BC932145BAB437E7BC2D903B3E8908703D81DEA9BDB4BC30BEB68019BE8E1DCABDE505BBBD1D8E8DBD8BA94BBC39EDA5BBE7105ABD81CCB7BD468C09BEEA9500BCC902063EBB9B2C3E6C72AA3B97358EBD7BB116BE96BD97BB21D600BDF435A9BD640EC43C19C8C1BC3DC2B1BD2730D7BD69F1B3BD74368EBDA855A43CE97B0F3E48AC093B800110BE53DD0BBEB13614BE01C19CBD6CBB393D396643BD5D38F33CD1BB19BD9E9A41BC3F44E23CDFF92F3DC8EADD3D3F1BBB3D8E5ED5BC611FBDBD5894F6BDFA5DC4BD5E0403BD3A0C313D832890BD69102EBD9B4FCDBD3F35863C5AF46BBC254117BD43AEF8BC1620283DE60872BD3F0FBFBD05D4B9BDFDAFC6BDB2EDFEBCE20500BD811813BD1363FC3C38D8DB3CC6E6473D2939A53CAD973ABDFEF1033DF873553DD0491B3C6F1793BD1135F7BD6A049DBD9D26C83C7554BB3BBC3345BD862484BDF0B7103D99544A3D98C52CBCED526E3CF9B785BD2F25073CE09E82BD85D1A1BD783AF0BCB3EA2D3DE490D0BCBB578BBD919E54BBFD8805BDE2711CBDBC088BBD3D301EBCDD878CBD389368BDF125A1BC3CC785BDCAE7183C14228FBD1E25A43B43929F3C4238333DD5A0863C762F1D3D70421FBDE33B023CBA7383BD8627A3BD52DCCA3CF77B7FBD8C0A0CBC37486F3C4EA7583D304ABF3B6C7B79BDCCDC06BC80AE8BBDD68C6FBD58F22DBD71AC013DD9368ABD8E05803D2413423DF4EEA1BC643B8BBDAA1F8EBA60CE8BBD165E7F3C61CE56BDF64BE33BC4C84BBDF03136BD9D8115BD6691363C47A570BC0B966B3A65E8C83D8DD3CE3C51038C3D1394453D58EE69B9F894ADBDF1FFFA3CBE6515BD6DAF6B3D40E00B3D445A643DB93E2D3CBC427A3DF7E8CD3D1D1E873D541B043E6EEACE3D76CB853C17D3253D9900AE3C083343BDB78F41BDF653D03CF0A242BD3E34963CDF603DBD0C52813C6CA03BBCCA0BD53CE391A23D11E9E93D7528683DBC83813D59691CBD332FA6BB8CB578BD9E690EBCF1B5D93C7D5A6B3D11F057BDCB9709BE5B0184BD6AC9013C8FFAE23D97C3943D56EE413DE081C1BB117088BD89A4BD3BD00539BD2AF0E7BCD20A5A3BAAB3313A8C9AD93B40BCCB3C57D67ABD4965513DB35FA83B7F0ABFBD8256DD3CA0851E3D7616ABBD60F542BB789B84BD7512373DE0A55F3D96E42A3D9563203D0A35C53AF84546BCD86DD4BC0BE3A1BC0407F3BD2E1C7F3A8BB1B23C5CDE013D2F08FFBC607793BDC1E8323D5E32083BBB2E99BC5D7047BDC85392BDF53AC4BD1719B2BDF34F22BE650FA7BC196D4F3DD9E0633D1227753B64E872BD56E0543DD378F23C2292B73D713D913D1F4E913D76A043BD490EB8BD5900BE3B0DD5B7BDF41B6B3C2A96E93D3442A7B98BC0C23D44D5C7BC84C0B93CC07C3BBD3BD20B3D60F3A23DF870EB3D0F11E53D48D0133EAF068E3C45EE843C77ADC4BC729E383D5A08043D893E7DBC6B87B6BCD0D683BC390C98BD60ECE23CCE41E03DF9E3A93D23CE053D11E3FA3D866CE03CA3D7023D08AD4E3D96AF3EBBAAEBF0BCE20C2E3D3F0E95BD2F1A2FBC195A94BC5C1EAD3CA49511BD2D49D13C1FCD45BDD7258CBCB6706FBB229A8F3D2C30CE3C0C0488BDB0FCABBDF017B7BC6099D63BE3301B3DB6DB15BD4DAFBFBCA1B9733C741D3A3DAC0FEDBC3DC46EBD62832D3D2D18A9BC94AC303D56C0D93C9042BC3B46CE2CBD2B433EBD96C487BD42DB2C3DC6AA4EBCE57C9EBC2EF75C3D95C111BDE680A23D2F4C083DC61C863D2D7ACC3B3100BD3C74047FBD7242EEBB98E2893CFEC5DF3A1C964ABD1DA12F3CB6D9643D7C13EC3A95D4B9BC7B09543D8573023D506D9EBCA0C680BD7F1E7CBDB18E683CB6CE6FBD509D243BCCC31E3D2BEF8CBA85F5CF3C4A6DC03D554B343D43A0883C2559073DFBE113BD4F4691BCA12739BDF7A843BD32601CBEEFF308BE91DE3CBD59FB5ABDB8F0AABB66D59A3D62C885BC33F4BF3B5AB6623D27A9883C99BCA43D24AD3E3EB64B2C3E6770353DAE633DBD72EF1EBE9B2902BE62C07BBD8C95153D58865DBCF16C823D098C713D186A36BD01AC94BD5694D93D27E76B3E99F5273EDD17353E00E5823D791D3DBDC23408BE5ACA82BD4B66233DDC4B0EBDD266D33CAE77F1BCDE8482BCA4F9DABD7F625D3D042FEE3D90B8263E25AC5D3E94A4123E1ADD413EA0C01C3D1DA12FBDDEE3BA3C833556BDD8739B397830653DAC22913D641C84BD739F853DFEFDC73C07F59ABC2094CD3D9838F73D0ABB8C3D04ADC33DDE3E033C04B303BB7419943DB2DAA93DFD7762BC8F34CFBB215BB7BDCE6471BDE9E214BD79B1CA3C4FA8203DB4DBBC3D3583C23DAEA9FB3CA88A9CBC540F623DDBBB953DDBBD90BA21A9B73B1FE48A3D8F3A3FBDBD615FBEE3413EBE1FAE463CC4827D3D0C08A53B10B867BDCEFA56BD5A4EDC3CE2EF973D64D62E3C5BAF1ABB986AFF3CA318BB3DEA96D23B19B234BE9B5C0ABD5A5C4B3DA4B84D3DE2A5D4BC61F383BDE8B0AFBD9C726EBCE07D363D414F813D77DD233C20F68E3C92029EBC25F5543C909DAE3CDA65383D770B8CBD3FD0DBBBCEC71ABDA1AFEABD22F3393CCEAE8D3C6654653DE0811B3D9EA8B83D63F6C33D01773F3DED53FF3DA429623DE401F53C80375CBDD551B6BDE9EE01BE9E0E91BD408D67BDC2C2CCBCC9DBCCBC1F74A03DAD75A33D0487023D184B313D8C4DEA3DCF7E2A3D7C0E873DEB5A0A3D64305FBD7FD1F5BC22A99F3DD2C0BCBC3A1955BB4E9322BD338619BDEE4E943D3409843D002ED43C3301BBBC2DA6913DA810743B48E5AB3D12828A3C37A9373B7EFD6D3DD29561BD05C7BDBC30826FBB0CA3E53CE25B7BBCA49EB1BC90E976BD3E0BB33C763086BD9982453DA7DCF53CD1B790BDA6A6693D288091BD80963EBDC38FC83C32F59ABDE6A91E3D8C3B833C26C98DBD2B99673D7D10E83B24616E3D700D14BDBDDD2FBDE5AD85BD2933433DD32061BD5C5E8EBDF9949CBBB2B0473DF3B82E3DEF9A7CBC74A0813D336A303C99CB603D7DBE7FBD351613BD0CFAA3BD475FA3BD609333BB1B1497BDAD3F0BBD202DC4BC53AA33BD7BFD6E3D79D4AB3DC6DDC73B1DF9173E82A89ABC20DDEABD465D13BEBDE95ABDEA8AA53B223A893C50BC1B3D7043E1BC6DEFD3BC8E28AF3CFEED873DF824A2BB97CEE53D2691293E53B9B63C24A837BCA0F1903D0484383DB277713DD0FC0139B7B901BC5D9AEE3D781161BDB8596A3DD570EEBBD626463B063D183DAAC6CC3D1484803CD53D0BBCF84CAF3D3E20FF3D3C55ED3B7C7AD73CF7E64D3DD585CD3C5897573D393C2DBDFCC9133D3714FBBDADEA92BD412506BEA60C06BE750B96BE5AA3EDBDA2EB3E3C1980FABDBF41F3BD4F6635BD8D6B0E3DC7BA67BDAD6545BD589410BD11B3D2BD60ECF6BD000E0EBEE31FFBBD4104A0BD8063693D99FF603DE0AC6B3C917F90BBA96D83BD14306ABD977A39BD4E4139BD898154BD422CFBBD5BAC62BD135628BD85839BBDA15E713D5C664F3DB509363BDA84BF3C41E3B9BB5E5A803D6C3E333DEF9C39BD7EB3BFBC4E1C46BDD5392ABD15AAA83C922458BD72F8803D9F632C3DD06D033E2A10183D6203773B76A0073CC4B51B3D549C533D91D1BA3C99C2153D938CFCBC7C66EFB8C311E53D72CB1B3E6632833DA707123EDF63813DCAF85C3D339A5EBD6C3FBBBBE5F5813D0CA7ADBC35F015BC65527BBD8FEAA9BD33FEDFBC71664FBD11F7A53CF46735BCEDA019BDCB51A7BD334408BC5AD99EBD5EB6D9BBAC1C64BD9B80A1BD12154BBC1DD7EA3B025852BD7B93863D415D23BDBB57FCBC69D35CBD5A0E833C75FBFABC8375123C6E92A7BC2D7BB5BC48DD22BC5CFCBC3C4112A63C88494A3D8A5A683D9201A1BD9AA707BD311910BD22D655BDBFA05EBD73D36B3CEA358D3D28F112BD80F0E93609B9AABD196BA5BCE883ACBDC563613D0B181F3D8DD081BDEBF9083C60DBA5BCB996B4BC2B94543C23F6923CFAA474BDEAEC95BC6C5028BCB00C8A3CF636AE3C15A958BD3DE5953B5D37203DEEEA5E3D0AABCFBC57C83EBD89F57FBDC385FDBC6E9A6CBDD5FFDA3CBBF201BD43447CBDAC4F7FBC7513903D92B53E3C65E357BD62AE59BDEA0B1C3CB2DF2EBDADD08EBD809B853D5102C93D9C96E03C6A156B3D180020BCC08ED33BA514A73B1916473CAE322F3D6A1865BD69AE5EBDE0081B3C53FA83BDD8381B3DD63B1F3DB7BE613E14DA1E3E6735F13DFC7C8F3C97718FBD7FD8AD3C382BB43CDED62FBDCFCAC63CD6148ABD72E683BDC003EA3B2547293DD354643E62033B3CB5BFBDBD2EA214BDB52CA0BCB0E9ECBD94650EBD26EE11BD80D3423D6FAD5ABD3E90F2BBEDE8DABBECE2DF3D4759293E3FD8003D1743FEBD5B6A42BEAFC1CBBD14ABAFBCDC8143BDF9D33CBD3A38D2BC5FA2103D108B29BCD1F6A43B67BFB53D20FA753D531A823CF537123DB39AE8BD9815D2BD6C5BD8BB5FC6DA3D5E616D3D6FC7103DF8A11A3D74F9893D52B9253D13F0213CE656B93DFF7BE03D5A8F7EBC94158A3D432986BD3AD209BE613FD8BD2C5D893D8E18F9BC6C5F9C3D1D5F863DB204303D0796813D8F04EB3C094597BC354BAFBC36BB7C3D2D22833DAB6A1ABDF4793CBE3A0B00BDD36F383D2397693C5134143D658391BC432B8EBCF3BBF8BBD7E08BBDD827D93C8E835DBD25B1973D07038D3C388782BD162EF3BCB66A9F3CDDAEC43D0E57523D2428143B751A953DA3BB40BD1C8986BD4BC647BD92075CBDF847EB3A788ABABB2CCE16BD46C29DBD4240AE3DE3F16E3DF67508BDC9C56D3DBCD358BB5E972EBABA2E813DFFEA183D743072BD8BF228BD779BD0BBC53784BD8CA2AABC9BDAC53D1921833DDF2EAC3DFFB6D33C2022A63C524AC33C9D7ED0BCB32A8FBC3D3045BD5D8022BD041D58BC86FC6ABDA2AF44BD5E5E90BCE1D6E43C8E0FF23B5171623D1F758F3DF2B9B93DA7E0A13DC2345B3D3B141B3D9B03823B48268ABD34656EBC000EF0BC753A303C2F6085BDD078ADBCF57E88BD5343973DEFD4A33DC3BD02BDB37AFC3C1092503DB615803C22F86DBDE221073D00F83EBBD1268C3CDCBAEEBC5CA28CBD02A540BDE1478FBDA0DFC33CD441B8BC72D4C9BBC2EE483D960524BD808F2DBDE047513DB0E8123CD7BDD93C8C79893D7338FCBC081DD43D17ADF53DD346CF3D77229E3BBEC72A3D668FA6BB902767BDB987C93CF2120D3DAAB21FBD25C105BDA067783C29671CBD8AE6BE3D7EABA93D405CA83C0A71DA3DBA38BC3D6D36A73DF0BDDE3CC06DD63C9482273D6402ACBDD7C097BDFEC02D3D5B621C3D727BC53DCDDD663D4E42453C061EBABD7AD69DBBA5B4803D9A81C4BB570760BD356D7FBD6E4890BCA74E613D217C3DBD6ECEE33CFEDA0D3C1B438FBDCA98C43B8C8EE7BD8ABAEABDE36AF53D9B58913C3FB0AABCBF74E9BCE8A377BD7A6CB7BD6E074BBDDE9E76BDE51B213DE2C1503DEFF2F4BDA22E89BDB863C3BD6B4DA5BDB79ECA3D3EEB8B3DB03EB03CA00730BDB67CF3BCCEA982BDDE6779BC34C463BD0368A7BD0898F9BD3BD0E8BDEF4217BEA4D151BD5237FBBC494F23BD200881BD9CF1C8BCA0EEB6BDD70A1EBC65A08DBD25755BBC0AE133BDBF6B92BD82C259BB2AAF803C20FD5D3CEBD91B3D3975F43DA738783CB5EFCF3C6BA5E93C24B143BDD4103DBC962D883C100ED13C6DBC5A3D9B23793CDDCDE8BCEFC3C93D0DCF953CD192ED3C2469983DE96BB639C586F63C273E52BD7D8DF73C92F4B03DBBA9923D4391B3BC513775BC98619A3DC6541A3D1AC41A3D2CAAC33D15648F3C12450ABD91E89A3DF69FAB3DEEDFE53D8C87B13DBEF51B3EA6C7C53D2B3A69BC46506BBDD878DDBC425DC93DD703793D44BF2A3EE0A28E3D10BB003D8700223E45BFD33D4E30103E9BC4073ED970A43D0FED873D87BB0E3DCB0B83BDED14D53CA4BD533DC80EC23D9B9579BC3F75B93DAC981BBC4F6BCD3C88FDF6BB4CCF453C27F6843DA5DE703D8E7F173BF1F6D93B6080903B944EB43C5E96CDBA2205163D93D4E2BCBC30C1BD3B224BBDCFC106BE5DEF8CBC386206BC612E9D3B7F709BBD809DAE3C7CD0203D7E19D5BC2CC6EBBC1C58D6BC426A20BDF76D35BD55D8B3BD5F09F03C7CE1EF3B2745E03B53CB93BC50A766BDE45803BDC468D93B26AE92BC4057C53C32A02A3D77505ABDA50028BDEF30B7BC54393DBCFCEDB83C69C09E3D0643143D8943153BF48E5DBBF68988BB36CD193C81D80D3C6F44FCBC7B17933D25BD0EBD59534CBDBD909B3D10D405BC0645F9BC03BC4BBDA397E7BC756210BD51F8703D66F7743D206DEFBB70122CBD3D687E3DB63E22BDF70A983DC7A0FE3CC46D41BD362546BDC4E696BC03009A3D2E4FD53B049CF43DC287F93D5A03453D8016A23D003736BDCEE1EDBCA04A08BC346741BDA77BC9BD245DACBD992104BEC8CA643D449BDF3D189C22BD5DFAB23C82D38EBDDF03903CAC3F8EBDCEDA853DCE759A3D0F568A3C000BD5BDDC57C6BD4E0782BD65374DBDE2692B3D33B5BBBD6FA0A0BDB67542BD776CAEBC4A13B5BD3657C8BD0AD413BD594945BDBF0F8CBD8A9F25BCC67E363C9A671E3DAE58A43C737ABDBD53A120BDC350803A6CCAE5BC2B68CA3DEF3A913D889789BCA1CD60BDA05D6F3D470D273DAA3A4BBDB9A6B83D5D5DAE3D5CC2323B50FCCA3D58830E3C86031A3C80FEC03DB3D18D3DD3A1283EF2F2553D749F483BA13E6B3D63AC3FBDD1CBD83D4DA6DF3DCA083D3D13C5C03DF142233E0FE42F3E59AC113D856E093D31E9143DA834A73D248BCBBC10443EBD7FF7A83DEAADEE3C2C1D903A7111EB3D01B7773E3BC0763E9B14253EB04DEA3D72EAAF3DAAD1D6BCB7A6A1BC18E228BDE8EB453D5006B3BCD909173DFC0D0DBD09B9ACBD5F8542BD2A7B1C3E2D28F83DC8B8F83DB82D5E3D95C40D3D2D504CBDF606B6BC3C84BBBD6EEC533D89646DBDAEF7873C478C88BDE3EDE9BDA81D70BD2A41D3BD4CEEABBC8117C6BD55A4463DDAD9473DFBC8063D4CA77CBC1432E1BC9FCA393D05F5973B96A94F3D8B5B29BD70BCA2BDA04D583BB4A7CDBDB82D3DBD339A5F3D3FD5333D3B2F35BDA0E5B13D60B70E3D2A36843DA719683C94FD3C3D0BB17F3D2A8E26BDD62BE1BC5688BCBD2556CEBD2930A6BD2139CABD2158F3BD43D916BD4417843D4AB77F3DE51B1DBD9ABE1CBC050956BDDE40943C8EE0EDBCEBCD993D928450BD1E9360BCE1FA5CBD2246893C2CBEED3B22BD5B3C3E3549BD5D456CBCC8E48F3D60106D3D9E1A33BCDB661B3BE3C531BD4C2387BDBCD60DBCD7D03A3DD2502CBD9CEA68BD510D44BDFBF402BD058D233DA33F8CBDBAC49DBD9C2791BD904FF73C08B3493CF26EAC3B7A2B1DBD602AE4BC4A18A3BDC1DD3B3D0CC85EBD98B34FBD430D2C3D82163DBD5881923C417B9FBD27C13FBD2BDA4D3B191AC73BCAD94CBD408BF33CB44A0D3CA0AB54BD2670AA3C4E79A33DA6A53C3D61CD513C15DA14BC19191DBD8EDB10BDA5BA0ABCF71B0EBDD2599F3CED1664BDD3870ABD27B342BD4D7D63BCBBD8043D175B823D64D20E3E1B45F83D862F713D7785CE3CF24087B96EBB1E3AD015A83CC99BEDBCCAA1243C021E9ABD20F094BD6D045DBDFB27BD3CE86EC13D5CBF7A3D3AA5043DC447023EB21DCBBB7488B73D207026BD9C5AADBDE0D38ABCF540143DD2033F3D2B5FA4BDAF20BFBDEEF51F3D80B45CBDF4FE1CBE56D0B73C1B69423DA451783DD51F463C81E755BDF86D36BD5C48EB3CD39522BDBD37103DD494663DB85FB93B8796F03D658E5CBDAE9C88BD33B792BDB098F93BB45BBEBC25FF8B3C2CEBE6BB9ECA8ABD3C0BA6BCBDFC9BBD1AA30ABC4C11FE3DE2D7963DF601BA3CECAE06BDF56A3FBEAC96A2BD6639183D609D18395816243D0E82BBBC9B12543C199A36BB40620EBDBD9882BBE7620C3E437F80BB3E54573D1C9BEEBDEC78A1BD33B432BB4571433DE4BD323D7C39DA3C3323D8BC2FB355BD83E694BD33E011BD252D833D3AB4D13CC37567BC594E5F3DF8EE4EBD2441C13C65E71D3EDD7CAD3DC932993B2912AFBCE875E1BC07E91FBDC27245BC471014BDE3E035BB77D5883D78A4E73D45CC103DAC64173DF876B53CA8E7703D9C616FBDEC181FBCE744A53D3B5947BDDF8D323C6C41543C3DBCFE3B5BCA2E3DA2A0B3BCDE62C1BC4590FB3D626A183D3C0D533BC4D3E0BD7021343D07D6C53BD22733BDC562C7BC3F2A55BD25C9993CA79778BC89E18D3A5E6719BDDF584F3D3BA3C4BCBAF6293C375FA9BDD4028A3CDF2DB13C98CD663CADA93FBB90FD87BAFF054C3D4D14E3BC7F9F4E3DEDFA97BC90CB57BD720C93BD0B96CF3CDDC495BDDCEB55BDCCCAECBC4BEB1E3D144D553CBF7FD7BA4689CFBC40CA91BD33B206BDFFF1813D17934A3DCF6532BCC2BC88BBB744063DFAC7CBBC23AA813D38D7803DF7C2843DEDF90A3DB94D033D47C5CEBCFB1129BD9C2F813DE0F96ABD3F95E3BCC8C782BB0F6B363D936C6A3DFFD08BBD9483D2BC644A8CBC1AE443BD088E2F3DFD79C0BB344D2F3CA1F6D33C0B851D3DDBC7163DE283613C6FC9923D47BE9A3D800EB43CC34F7EBC0D2CFB3B5596B03BDC75C53DEB4A433D083C84BC48902FBDBF5D2C3DE754893C41493FBD365BC93CC70C423D4401B7BC28A01BBD30B4C6BD6A82173D093808BD4C479D3B0645303D9934B0BD665433BC3FBBB53CB3EB933D64866CBDECBB473D1EDE813D8884E8BB8152B5BDFA14E3BD69F21A3DA7324DBDC64A853D6CFB43BB3C80023CE2A6FE3C91F802BDAD8D16BDDDCBFC3C37C447BD5F3B823D91E8CFBCB87321BDFBE6243D2B2CF53DCA9B643B70A1A9BC521690BDD484853DC28E583DD3F0EC3C0E984C3D58512BBDF82792BDBE6BB63C116CBA3D12D7D93D7641623EBBB2413E99052B3D3E8BA83C25E19EBCB57E07BDF46CCB3DDD952FBDFE16DA3C279F83BD53F776BD07968BBD1CAA743B2FA58ABC02D2823D0E8F393E4309A33C40C23B3B54AB113DD2A0A2BCF4EAB9BCD3343C3C5BA6963D4C543F3DCA46EABC30F1A7BDBC2885BCB72A523D0B09403D0DE9CDBC25964CBD471263BD5655B8BD6AD5C43B74F0A3BD5502843D7DEC7E3D2E1A0DBDE3635A3D14B51DBD9550C83B1044803C896D333DDA7048BD55450E3D282DB2BBB79BA1BB201322BDF4B2B23CADC457BD245F123D2874A03DEA1A0ABDC7C69A3C1E90A1BD07E1DEBD00FAB5BC1C1EF43CA0E5483DC15AA43D6F34553C8FDEE0BDEBDCAEBD616B9F3C8873F6BCBA2B42BD86F8B0BC9F7C01BDC7E8253D425F2C3DFA5B1C3C2BD87E3DA7A7953D3AF0863D630668BDE3068DBDB524943B58079E3C7FD095BC68C5933D17DB17BC79F18EBD87CE9DBC7ED1C0BC996F97BDE5CEF7BC8F2A173B3F6C63BD87F782BDFD426CBD76B3273D8BD19A3C21EC50BD58F9853D55E020BCFA110ABC87CB80BD9909C5BCAE1BFC3CCD27DBBDAD8CBDBD0C9C99BD36C4773D2897633D753E05BDD522183D22E78ABDF76BFC3C8D1873BD910D6BBD85982A3D3E0C2ABD6B7C573D6096423D483090BD70C320BC43119EBD5AA979BD5B5044BDD541A0BC8D300ABD905F3A3DFB7A923C27CE92BDAC872ABD3B66B6BD36846DBCB37931BD49DFFDBCA57815BD2B6BB5BDD146943CED4C5C3D353EDCBC706078BCB95FF43ACEE017BD253CA2BDA443BD3CBA9423BDEDD99ABD42A3C8BD685419BE7B70B9BD592F8ABC306B51BD1AB285BD727E1B3D077616BD8AD520BD7660793DAA5F69BC4DDA8C3BDC594F3CC6C8113E98A71F3E85E7D33DFFE83A3D3DFB4BBDC5E2B2BDF3E0ABBDC540483DB5663CBD7E6E013D175A01BCC9E4BD3D0A2B2A3D9A08103E2BEA193E3B3E553E5A52143E4F23493D86145DBD5552B5BD2965F0BD6A4E59BD287605BD60C5AF3CE8D4153DD82C363D626BEE3C7E07913DEAA04C3D75B1923DF4C1C93DE17A053E9AF7993D2BB809BDCB3A1BBD6E0B6D3DE404B5BCD1AB833D99B77C3D1951BE3CB6C587BD75D383BD79901EBE8074EC3C0B1B863D4561063E12C075BBC6D6CCBDBDD6CBBB138E733D97DB29BDC96598BDF60A5EBC7830EA3A056B9DBCC7042DBE3926A9BD1DEA393D7E36173E39A02D3D580071BD0A29AEBD92195EBD529C6DBCBF3B4EBD3959233DE49CD6BDC8B853BD886CE9BC9F0A7CBD96FDAF3D5A2F023EB0D08A3DAB103FBD7FE2B33C3000523DC64C1CBC7A38003D05E94D3C283E9D3C3047E2B90330F2BD0E842EBCF2DFB2BD7B75D7BC72E39B3D0F9901BEA22F02BEECB282BDE3890BBCFC2E71BD3010ACBCA73488BDCDC544BDB334A5BCDBB04DBD9EF8C1BD1F1515BEBE602CBD6611C7BD4476ABBD67BC55BDC5A9AFBDFA899ABD2797A43C1D554CBBFFC837BDD4D0A73BB24080BCFC5652BCA1B6A8BD751FB0BBB02AF9BC63CA45BDCEB34D3CB631083D0225B2BC52603ABC7EC109BC1DD635BDAD7F293DDDFE8EBD9E88063D9312AA3C8ABA703DCFE9E73C648316BC557DA2BCA81269BC69E7053D965E9E3CCC29303DD29ACABC815567BD3F8AA53B87F31EBDAEC88BBDC75AD23CD8D9303D7EE9FF3C4ADD993D3849733DF01FBE3D0851883D3FCD0E3DBADC94BD095B00BD71B9D3BC0F8E073DBF2F873D1249FD3BBDAD49BC24081EBD06D9E0BC436B863BC523DB3CC505263D446E913D7C35A53D7AA6113C7CC4BD3B0F85033DC0DAC9BB9274BC3C2B362C3DF344963D5EB9003D00A4823DCD5E1ABD19799EBD50B155BD710DA53C258C073D9F5A26BDB65FAFBB836B5A3D92D9853A6E387A3D1AC6B5BB708C863C55B7C0BCA283F4BAD6D9E03DDDE3DA3D84320A3DF35B5DBCED5A253CCC3B02BDAF50153D97A68EBC91921E3D73A5DABC394CA7BD64E72CBD599997BD8CA8ECBB0D8DCD3D654E2B3ED66A033E1471C83DB85F1DBD93AD033DCD73123D436980BC9F0544BD8C368A3DFF44643CE9BAA5BBE540133ED78A023E98282BBC39B077BDA93EBBBDA76DA6BB7AFFDE3C6FB0843DD95BA13D4EDBC4BC4F191BBD43F2953C5E46273D606FC43D6A2BC73D0102DE3DE0939D3876302DBE97DD72BDC5B8843DE4E51D3D1B988C3D9727DD3DAC8813BD5DED19BC0A28A43C07FD80BC70DB25BC11734D3DBB695E3CF455FB3DFFE4353D48D55CBDC0F7DB3D48837F3D3162EA3D65574ABB4355113DC4628A3D662CBE3B65BFB03D208638BD447F38BDD60306BDD2B4CC3D8DEDA83DE690D1BCAF3F99BD1F0CF6BDD18504BD61A2533DD62A9A3D33536C3D718F8F3D92D4E9BC2EC62A3ADE8D993DF8BA453EA9140C3E6A67863D30557C3C9CB897BBFFDE28BE76925DBDAE5C9D3D86EC2EBD2A3E033D1D2F9ABDEE8C78BDD35BBC3DAE52073EC636183ED124B33D4C5419BDC3D4443D4C2F70BD7CBEC9BBC64FBABCD4D7CEBC0D18893C34FAA03D47651BBDAC899FBB816B213D75F1C03A54CC98BAD7D926BD650B173D00F0393D1FE91B3CA82CDF3D194E2E3C13F9363C755C2E3D47B82F3DD790553D224ED7BD2638B1BDA014A33BB27AA83C3EBE233E60E81C3D77C34D3BDB73913D8EF8A03D9639803CCDDD0B3DE6CDAA393FF2213D434CC33B3FE3B4BDA0B743B948D18BBDD16836BDA403193AE5DB363DCA323B3C0A9CFF3DC8CEC53DD8B2DC3B6763DE3AE47F533C44FFA73C3C83AABB881370BDE92C3C3D4E9A353D571424BDC4D032BDCF27BCBC7243493C5F20063DF83ABD3D30711B3D9B0816BD5351443D17A5043B15F70EBD3FEE59BDE989833DC43753BD5A8C02BD5C306A3DA09C4B3DB6B6403DF8451EBD97A65CBD1845713DCA1FA93C79D44B3DB52459BD538944BC87D192BDA5093E3D68BBC43BD6D6933C679F933CC9B7D4BDAC2FAB3CBFD2C0BC454A51BD51DC56BD5921343D49FF0DBDA3F478BBB0C21D3DD389693DFE4B3EBDA603743D60E9593D3E233EBCF3D18ABCE2D916BD3C3384BC6DE13E3D69B0B83D1E9855BD0FC5C1BC2A41D43C4D4866BD0AB8B7BCDF69813D3F80EE3BBA401DBD65547DBD0895FBBDC0A6AB3B528B58BD6CD56EBB89183B3D0FBA37BD7307353DFAC587BB2DB55E3DC31B253D5D71B13C840EB23CAB1875BD61D0BEBD5D37863BA9F5AC3D9E17D63C16DD733D74F599BB0B289BBD738EC9BD2849583DAACE203DD86D1DBD4C513F3CB8ECF83B8704B33DA02EA43D30D6213E427E143E85F1083D4018083C629EA43D451A8D3B1159F23C6B14793D376717BDD8AFC33D5259733C32AB153D671EEBBBDF27C63CFB41EE3D7114603EB21ED93DBA5F553D6059A43D2DFC6B3CEBE037BD1BD3603D4F4765BDEA848B3D02A928BDDECF8CBDAAF752BD985F313DBF641C3E122C0D3EAD50C03DE96ECC3D6EEE82BBC5110B3DCDEFB73C55DD87BDB4ECEF3CCE0F343C97CA1ABBA14DF13C372D883DF2DCDD3BBCE9333EE98A0D3E6A2D85BC619EBCBC8A21C7BD0F9190BD75C50E3B46ED8EBD5655843B632506BE5F0F85BD4496C53C420D72BC3910733C94D4EBBBBEA935BD232A77BD14986D3C330CFABD947E62BD6281A7BC8517023C110787BC3180E0BD4FB394BDFA5D42BEE3EC23BE4AD064BC1B85AFBDDB8ED9BD4E9A37BC7BC184BDAC0FF1BDA9322D3DDDDB893DA6FF3CBD3A62ECBCB8429A3B0524FA3CE041CD3C15844A3D3D7EEE3DA544173DE326F23D5278D23C055B93BB3B2DD3BD7A92373D6901833D51AB89BD65E04ABD80543D3D10EB36BD4D98E4BC087EA5BC2B4CC0BB38333D3DDD5F433D8C1E613D8860423C4C995EBC4E9E59BD6E4B83BB4AA9A83C9F1736BB7E6A623D9253583DDB7AF03CBA642A3DD85E6D3DA738FEBCDF07713D58E6513DF5D13D3DF446213C46B81C3D3C32DF3C86D6163D6A076D3DEC67E43C95DC04BC1A51D0BCF098613DA05F85BC3558463D48592BBDC6C96EBD039E54BDC8D3B93C1842D03C7A39683D9625273D6EDE91BCF3BB90BCDD805D3D3241963DB7FB68BCE32C08BDDA096D3D75F8AE3D842DE03D71DA033DBF50903CFD922D3DF2D6DDBCDC5299BDA6BCD0BCC631173D0BB33ABDF7EF903DFC62493B7C8B9EBD047D313DD4AE053E4B18A23D6133663D11D2B73D5F5EF3BB5BAEA4BDD8E56E3D8A55A43990F275BD14DAB13CCC39483DBB77ABBDE51EA3BD3E8F5FBED9481FBEDBEDABBD29E9EBBCB4A7E53C9511D73D97DFDD3CDEA53FBD25E1AC3CCE6982BD48ADC43CE38C3B3C0489B33C29A6FDBDF88652BE49A022BED611C4BD501F0CBE3804B9BDAA3798BDF8C468BD873E86BD1D7A49BD9844943B5D7461BD0C4FC83D0FAF253D457FEE3C930F62BEC5BE15BD4A8A79BD5121D8BCC80057BC485208BDB99680BDB4AABD3C203C3ABD86DC5FBD1B97843D54B0C13DDCD7B53D2DF5D03DD468B2BD0BB3F03D8CC01DBDA92B4B3D987D1C3DDC6C523D5B2385BD92CE15BDD2EC82BD6FF4DD3C3594FB3D8FA8C43DEC8A2E3ED5DEE53DB65BE93D799E9E3D1E98823D7B23AA3D4CADFD3DE3CF08BD24509DBD9DB189BC07D81ABDADCC9DBC77F5FA3D84E9143D8CC1DD3DE803263E47D6593D08EE933D599E8B3D2FE0A63D242D1D3DFC66193BC5035FBDCD10753D123744BD81DF02BE708F4E3C435FB7BC1CE0CC3B8272C1BBE5F4AB3D2DEA8C3DA5E8913DB340003DC6B97C3DA23BBB3BE9361FBCD22F5DBD680680BDD2C204BEB52986BDB4C9F9BD064B8A3DC47FFB3DF0F09D3DA5DBDF3DF6E64B3D92E2B6BCA6B60E3D99DD5BBC4ABC15BC1221643D3A9F6B3DFEAECABCCDF6A7BDBFE561BDAA178D3C1BD10BBDB20391BD91C122BC6C26C2BCA3FCB33D1C70883A86DB1FBC49787F3D660AED3C555202BDEE1AB0BCB703A3BBC6D1BABD914AF3BD716AA5BD75247DBDE05978BDD85EEBBB29CF96BD4EBD19BC33858C3CFAAF5DBDB2945B3D0A196CBD962F46BD490407BDE360D1BDB7A0E8BD7E8FDCBD09533EBD0760EFBDB006E4BDEC44AEBB7CB113BD0FFB8BBC48D96F3D886A923C8CAAC1BCBC4E99BCDE4C833C0D8C6DBC86E588BD02DED53C1BE458BD0A3F6CBD71177FBC6B9D1A3C943710BD670D143CD22A1C3D16C0A43CF461B3BB980B37BD48B3893C5CF177BD61ED8EBD49C425BD7408283DBFD6933D273DAC3D1F5AFBBAADA021BDC0372F3D84D82A3DFFB894BDFAA983BD126588BDB1438EBD0E0E25BDF3E19EBD39D292BD36A8ACBC3C9523BC67BEB7BD542AC6BD55179FBD66778B3C29EB41BD4F1D913C082F8DBDED7A91BD016A083CE79952BDB8909BBD06C7DCBB0DA5B43DB8EB073DBF6BEEBC3EBAD33C40D99ABCC9F6E2BD75C5C33C7BD5FBBC11C3053DC1A339BDEC4205BA9411E33CED5D5E3D17B18D3D7BD60C3E73108F3DE9EE5CBD649962BD60AFD0BD309EADBD3E5F2F3D743813BCE412D8BBC4702ABDFB2355BC484C713C620FB03D0F1F183EB0D5A33D6986BB3DAB8E433D11AD2FBCD3E5BEBDB84700BDC6FE733A46A035BD0A34B93C658A2EBD3FBBFF3DEF73C93D6E4E90BA57047FBD3307F13C6809D73C2F5EC43D12CEB63D9B07223D3C40CBBDBFA7AB3C3F86BEBB7770F43C243B50BCA774B13D71F2613DC0D793BB29D530BE9268B1BD5471E33D28B52F3E7DFE763D7004CABCAC68233CFDAD5C3D4A38D1BC8CCC8FBD7DDA1FBD11678DBCA7A67C3D75F727BC209F3BBD2B4EB73D401F0C3EC2E7A63C585D27BDB94A37BD3618003D3265823AF222EA3CD62CA0BD5306C2BDB3784EBD55C47DBD70EABCBDE037AC3A74BEB83D45FD85BC2F578EBDAA8F7DBB43A5B7BC7FF866BD4ACF92BD06DB11BD97BD133D79DD99BD72BE11BE49C1C2BD162D1ABEE5AC43BD63BE1B3DC68F6F3C9610EABDBABDE7BC60837CBD0055B4BCD01F22BDAE45253D6B0CD9BCA2F626BD0C52653CDC4194BDEF7093BD578ABFBD7DBB7ABD0F971CBE953F79BD2E8197BD78A3A73C92BDA03CD3B196BC38EC7EBD2E818D3C54F84E3D6145A83D4AD0823C581DF539E50EB5BCFFA12BBD18994B3C73610BBD90D31B3CFDB4ADBC50D087BB0CF3F9BC54EF3FBDFA5E04BD304550BDCF5DA63D0D1621BCFB4C723D26E65D3D1DA6CE3D5A27CF3D37DC293B4D9CE2BC809963BD9E4FA3BD12FA76BDE1F219BB66D9393CA67324BD87A27C3CC6F86E3D670C963D652F383DA50260BD7168503D3F2101BD9E0E03BCCC03E5390D0672BB0DFE80BD19CE593BBCED64BD52C375BDE0F6173CCBB3033DE982483BB1616D3DE5D720BBCA96FF3DCE1EF43D1D749B3D4931A63C6C4954BDD856A9BCDFC212BD24CA193D77B7403D3FC35FBD089B10BD77E381BDE99F1DBDB10340BD5669A83BBC509A3D30BB883D8CBC0ABDCC28413DCE29E3BC8F9A173DADEC6EBD371CB0BDF11E74BD3E95F8BC6C07FEBD2C4FDEBD74D360BDA12A91BD47C600BE19D9DABD39D3D4BDD84A46BDB6E0A2BD4710EA3C0A5C47BBDD4D52BD019B2A3CCD5EF8BDF81C77BD8FEA29BCBBBB503D46B67D3C459706BE3A1780BD564573BD54D2DEBCA506B4BD9189773DCE7150BCAD3FC1BD67FF69BD6D4CB9BC7A755F3D8A39953CC6DA173D484BE7BD220ED03B61D7C3BB902A69BB3F4CF5BCA149C73CB0C4E0BC8B303A3D517246BDE60F32BDD941CABC3EABB03DC39520BD75026ABD0A6E11BD31F3E63CBD80AE3D7017F43DF8A8DE3BE52E0B3D94AB333D107265BD4602953DD92B0C3EF680EF3DFA99C43D73AA5C3D57B4FABCB543AABD4557153D2ED3003EA77F853DBD71853C088E95BD9B6E9EBC24F04CBD4E7466BC7DBDA43C507EFC3D3820A13D2063A63DEFD80FBCD65E213D5BA9103EDD69B93DA2B67A3C94E7863CBCCD773D78BAF9BCB697A43CDFA7D03BCEFE08BDEDD5DB3DD3412E3E0D81F73DDCFE0B3E793EC93D385B293D0B54113D5727503D3CB9CDBB9F2A313D9EBAC6BC9D745B3D6E508BBDF01B223C7D49253DE4B7273D73C71A3E9099113EA0AA133EFA4D8BBBAEC1C4BDE3FDB4BDC4EA52BB40DF6FBACEE50C3C5607DA3904D762BD95C4ADBDB95A11BD6DB3BABD01DCA2BDFF9DD9BDB682733BB3EE6EBD1740DDBCC40102BD788FBF3C5B82713DED506B3DE69E8CBDD259D63BD4FD763B18CF0DBD14FDD4BDF17BEDBD4091D1BD708FA9BD7369CE3C4DC8F5BC461E46BD37AA57BD4F0B53BD6B2332BD02ED893B4364543CB51B793CB56285BDB3B360BD4773AA3B0BED893C266145BD769E43BC203686BDD857793DDD803FBD6A4A023BF747143D63B36F3CF15E463D4840B7BB81A840BD93BA14BD91D1003D9150353DF43BE03C06A28C3C61ACB3BBFD66AFBCD774043D4C4BCFBA25BF40BDE8E5373DA4CFA2BC2F3FE5BBBCA140BD0D5F7CBDB8D503BEDE18B33CE89491BD61009FBD34E37DBDD9C137BDD86E14BD78F5BD3C0BD184BD269D66BCA24D78BCBB66E43CE5E1D63C4D6E89BDC48C71BD7CB49FBDA23809BDDC0F8FBD885F8F3D58FD393C70DF793D5314BCBCF36C423D16E675BDF03859BC8A6DD33C0028353D7CDE0F3D553C143D1CC005BED9E7CDBDE05E35BD6BFE1FBD6E707C3CC432E7BC718716BD4E6BCA3C9E526D3C55BC34BDB47E163D99D7C73CE1AF98BD41DDA43C42061CBDBB03CF3C1B3927BC0F835EBD10900A3C8A1A1FBBB636B6BD40A4243DA074DBBC6A16443D98397CBDC84E03BC3B24A63D08BEE8BC674A9BBDD867013E88B9A43D56A57DBC9445B5BC1F7B7DBD3D5DA3BBA303E9BC7F0201BD3871F3BC96FBB43DB161E33DBEF5093E252B853C4F2A4BBDFEF9F23D6303003E5025FABB0D4C453C984920BDE771183D4C19533DFEA25CBD94968D3CC6FD833D66CE273EB194F33C38EBB2BD48F147BDC1A4DF3D946F1F3E7E48DE3D27DCD83B736754BDF1ADA3BB0AEE90BC5CAB69BD5E7A4ABD20448B3DEE8B973D8374CFBC618C7F3D0F69293EB925223ECC26B43DFBE491BCB23E533C7484113D041490BD04EA7BBDA2FE663CC1263DBC786AC7BD9429C2BC663E68BDBE10C4BD233B753DBE256EBD1BAC56BD0231F6BD7F9DF9BDEA7DD5BD3F32D0BB0DF295BD05AB6B3C8F0E4BBD032940BED03D21BE41D70EBE5808A5BDEA51BCBDD0ADAC38336CBDBD531C42BD27AC1EBD42BA80BD6A7FE53C096659BB83113B3DF82197BD3E01C7BDA523BE3CD575A2BD76605EBC92C1DEBD93E993BD17C70F3D735A883DE932503DBF7984BA66F5053CFA9A9C3C6EAD2BBD4CE444BD10A6933DD88BA33D06E9B93D046F28BDC1229ABD415C6F3D35D80A3D99E67EBCE89043BC773474BD9DF489BD2081B8BC59A462BD74091FBACEF856BC1142713CCB8885BDA29E8E3B5690023DE4F484BD881B4D3D9DC786BDEB1DAC3CDEA0413D1C32BCBC11EC2BBD5686EC3C4D932F3DD9F766BBB9A417BDBFAD5F3D7D1369BD6BFB4ABD69FA12BDF98D09BD7FCC38BD1E7297BCA3052D3DF1DF7EBDBF55E839BA5507BB70B2243D611B0F3D4A953CBC11BC423C9921E8BC6E688A3BABD693BCC5E3C13CD7C1B13CE650CDBCB762853D99D17A3D30963D3CE14292BC0E1D5E3DB503783D0C8F653D26A8973D4B24923CFABDA8BA7D4C9EBBEF05263D8BA878BD074682BD29565F3CB0F524BD7E9F143C8EFF03BB252E48BDBA21393D0A236F3D880EC53D17800A3C8027A63DBC1C0FBDEC638C3DF834B2BCCEB510BD2248983B1366863C931A80BC9485B13C55789BBC0BB423BCBF355DBCEA428E3D80717D3DDF3C19BDD82E2CBC1A9186BA7A2686BBD23B27BCDD996B3A5FFD883D212392BDFC8B7E3D840DF2BC5DD37CBD3975093D871F85BD224FC3BDAED565BD98AEA33D6FA1543D2F467B3C81C41B3D7D2875BDBEC678BD27F7703D90462DBDD81B553DFC2169BD447C91BD970CC1BD051C823C561577BD95D3D93C107730BD3DEFAE3CA6A81EBD300055BC8A4D953CAD6BC63C251E673D5844CCBC36CA6DBD09A29EBD4B338FBC07568EBCB4F0A83CC2AEA0BD09DC54BDA3E60B3D7AFDA5BD67861C3DC96C303DCA5ACD3B6E1FEEBCB241123CF519AEBDD6A887BDC2080BBD23DA4D3C27B7343C163FCABDB861CBBDFD9EC2BCEB50D93CF631703D12BDDD3C277C243DEBC54DBD6D266A3CC03A983C1F53BD3CFE0B843D587104BDE2AF8EBDFE678C3CF04CBCBDE18919BDB4FA10BD4BDB1F3DA646883B3617843AF38971BC3C871EBD4741843D6AF99F3D05AB753C080A8D3DBD24803C3AEA53BB7C776C3DD32F9D3C3D8BAF3D641A4C3DE3EADD3C48E05EBC5C00393DD8ACB03C60C3133C8807B9BCD075453DD9FB583C2A5DDC3CF0168E3DB52A873C4E5AD83D3A62EF3A8131453D0381D93C22C8DF3B2E4292BDC1C21D3D41A71A3C3F0391BD4F5B7CBCB93B82BDAC5D11BD575D56BD28E93B3DA941863D8313F23C41F6923D6140203D91F02BBD3ADDDB3C88B3263AB7A98A3DC8C9BF3C0DD5E9BC41C3513DE997A8BCCE65183DE47D67BDBCEC7FBD7A0535BC3264E13C60C5D63C52B11E3CCC9C51BDBAE03C3D51E4833C4EE1323DC84D9ABA967AB4BBBE8306BDE03038BCD667503C6A324B3DE909273D1AD8CF3C3B1C7FBAB2F16C3DC06AAA3CD043903BBEC120BD088B033DF9206C3DC674123CDF30A0BC9AD88CBB8F021D3D10CB4CBDE65C763D16D6EA3C9FAC183B4EEEBD3CD36AFC3C7D845FBDBEEC3A3DA6E78FBDC9D428BDCA7742BD843A6B3DF278283C0E5699BBEF62C4BB8C8DEEBC189E46BD2F4A063C248F03BD421D92BD4E77723DC86A88BC2E5D973D2CA150BDE54072BB626F39BDA23F043D26923BBC1C6AB33C6F60883CCCFA46BDDCFCA93B5960223D7B60853C92D18F3C73218F3C4B5C863DBCB8FB3C0A7CCF3DCA20553D03FCC83D2E83C73CBC46DE3B3882313D8BD3F1BBBED6A4BDA6F4763DC5AF8E3D6C22A63D503328BBE557E23D45120A3E2908A73D9AF77E3D5759073E745B8E3D3056693D43E7043EAB418B3CA8E4ADBD598B99BD83E876BD59360F3C7B35373DF200F33DE88D133DFE929ABD308EE2BD04A87FBD985F32BB5894AE3DD7B8293E8DFA6DBB100789BDD8146C3D2D9C1B3D5481E33D8633A73D8141853D7D2911BEB75928BEB23812BE6ED57ABDA2F4C33C3F8FA53CD3DEFD3D0332883DF6601A3DD84E87BD1F76D7BC8EDDAD3CF02A763D71759A3CE8F7A1BD0B916EBE43AC96BDB19357BD4AD4A53D6D55CD3D5546BE3DD2E5AABBB592D33C57C33DBC090D8ABD1525BABDB1621B3C4C53513D1BCE003DB5F972BD722312BD17E1C03C5B53773CFFA34FBDC15FA53C988B85BA126544BD825B673D7B22113D1ABB87BBCADD82BC222A01BD3DA8573D80ECF43D0336653D8A39173D7F00833DE8BA78BD74E9C0BC12E6FEBBB1CC57BDF49BACBC6401B83C3FE54CBD4941CBBCF4A691BC296D423D6209973D2A820C3D68AEC73C847785BDDE4093BCB58763BD0261343D906CA6BC3FF38BBDAE7798BDDD324CBD64C6783D30496C3C401C4F3C6524193DB6E5CC3D57F9423D0AA33E3CE627ABBCFF37513D901E483D8B1F97BD1AF89F3C8855003D4DC43D3DD1AF1DBC36127E3C28B9C03C2909723D168698BB57FB39BDB90A193DD74F713D3D49343D9289C7BC37E48EBD65F8D9BC4F29003C3977293CB8EF633A55067CBD86C2433B9DCECF3B4B3B833CC227913D32E68B3D165E6EBD24428CBDAB477D3C5E732CBD0AFC863DB30B96BCEC6D933C430A643D080DB6BD2D5C42BCA63B88BD2CF260BD86A5A93B9EE3A3BCD28BC93CEFD5D0BCDD538DBDB22F43BD83D57F3DFB689A3C59BA153DAA68BA3DB932B83D23599E3D8496CE3D3390E73DB5A0CA3C2164AABC9E3B403DB1C9293C9E1A773DA8187A3CA8BFDCBC2F2F4C3CB37EF63D77C3243E58E70C3E5EDB4D3DD09C6B3D4E83CABD2331DEBD2598133ECC9CF43DEF164A3CFAA5383C0F2469BB48AFB23C19ECAB3DA873D83C4661843D3B9ECB3C21C6C5390889B6BD6CA14ABD580C173DCE7E213ED7F0F73D8E2FCD3C5146DE3D6D4FB7BC0BF0223D4DC917BD17A06C3D1119BABC0E05FD39261B333C6B3684BD33C0CBBC0E84003EE487E83C203088BDC664A3BD13E4833D79851A3CC769893C313D93BCEE937CBC59DCEDBD44D52ABE760C013D66C7683D8CA1A2BAFEC7033D44DEC83B42CF78BDA50167BD24D0B7BD908B14BD375A1D3D34103DBDC3D7D0BD8B0904BE4C7503BECEBCD03B6E78143C21E6163D6C61623D9A8A003D2306703DFA78D93C46398ABD33E906BDC09D843D5AC49B3C4E12623DB8ABC0BDF7C1E1BD5A3764BDC81F493DCFAD14BD808B1F3D6F7908BD681E9BBC8000A3BC524A5FBD61444BBD48F34F3B1302373D78FB083E8901FF3D228EE03C288A8B3B15F193BC951A1ABC433DAC3C640082BD5ECEB93C965FCFBCF9A45DBC572FD0BCD364E6BC783D0B3D1FCE6E3DFA21E53DA504543D99177C3D365421BDC37AB83CF0F747BB7FB7F03C8C2C003D759FAD3BB544CF3B49911C3CF7D5C93C69EB813C190F123CC1F85A3D5479963D64DCD3BB5E20A83CF60CA23DB4A413BD903C04BB57B1603D265B053D7F9F69BD23BB463D7B0CE8BC4CCE783D9AAEA2B8C6846DBD1F8D87BC83491ABDD831983D2706573D1EE6B33DEE6E003D1AA4243D21470E3DCC8CE93C7A4A2A3D88E6713D74560A3C9E76FA3CB7FF50BD6B69B63C63D2E2BCDEFD1A3C3B090ABD0BB218BD200759BD955F963B5A73A8BB0E56663D02FF14BDF85EA8BB3F2D263D1E53A73CC85237BCACA349BD2A4B85BDD3D539BDE2D0B53C4853013C233345BD6855CDBC0E04F7BCB4D5CDBCEF5A67BD19D4003C37B268BCAA31873C0CA7133D574D80BD6DD190BD70DA44BDCCFFEA3CC38E713D300CC9BCCC376ABCB82D59BCC9F3EC3CE2D570BB785589BDD06442BD4EAD81BD21D678BC6D7C1CBCAC6D9D3D0127EF3D266DA33D2B087F3C8E0FAF3DEC3D383D5C273C3DBB8A8B3C6D9CFABC4EAF453DD06356BD5524FABCC6B4F53CD81EC13DB008973D4E499B3D70B7753DB20EA93D1533053D024FA03D57B415BD6F90A4BCC86453BBC34E9DBD64E374BCFE5C963D6B318FBCE66F72BDB1AF973CF4CBCDBD1C01C53DF46F76BC8C2BC2BCB9C917BD6449A1BD96EB75BD5F79133D5088103DA1FF7E3BBB61A43D71F947BC3F2B20BE794918BE78B83FBDA71B833DC6A3A4BDF5CCF6BD241EF4BD4DF6C9BD180B963CE406B33A262E88BD9192953BB6E63FBDE33B4BBDA262B3BD644234BE2427713D06AAE43D3ED3B9BD254483BDCF4850BD7F746FBD184A9CBD381789BDDAC59FBC877E193D2BE56EBD8C5E353CA2617CBBE3D114BCDD408F3DE02A9E3D1E6CE5BDD43B1E3D70B412BD236295BDB5369DBDE1C732BCD50442BC433B1339FE4A423CD841903C36BB03BEA80E32BE1DA3FC3CCE910D3DA20F21BDD7DB773B291BAF3D72D18D3D3846D93C97A886BD6EFB703DA896AF3D29AB5F3CD2DE533C236245BD26FF79BD7F812F3D1B558ABCADFA2B3D0598043DE463133E8808D13D9DC98ABDAC676E3DB315E23C08DD843D8BF07F3C4AC2A53D7EF6A63D6BCBD83CBCD0F6BC9E9E9A3B88B43D3D2196143EEE937C3DF4EF25BDB13F5FBD1F525F3D615D063D9A7D213D7C3C4E3B3296693C8B8EE23D4FB29B3DE2BCAF3DF12AA43DA6C7E53D2A15C63D207004BC514965BD3F37A1BC72044FBC03C15FBD2895B0BBE012F83C77F64BBC6D5F7B3D21EA84BC097FA03DAE31173C26C64F3C86B97CBDD76863BD91B480BC347C563C11E54CBDC67F8BBD6067993BB362D13C66DA3BBDFB1620BD7B7360BC5371E63CA649633CEEC0A0BD29AEEFBC37B196BD114591BD6A879BBD3F1E013C273AEA3CA79CC23C954F8CBCD56025BC374176BC9C791A3D443D4DBD759381BDBA55093D7AEF05BDE1C7733C93B5363DF28B9FBD955BC33CDC0E4B3C0220383DAB7156BDAE8D9ABDBA76513D548DA13D1275663DD626533DFB51C53C1B88AD3D2091A2BCD221513C9F7ABD3CA5B3163D0304483DD441873C22F351BDD53CF2BCBF9B2D3D7398743DDAE2543D09EB9B3D7A4DA73D6F7283BC56946C3DFF7ED3BDB96D2DBD4A7FA4BD4A2C143B144919BBD49444BDF03CC938559D9E3D3B27C93D25A7473E1E66033EA9CD99BB0EA789BD07F3C7BD491710BE49EA9EBDB76E86BD6AF409BD959D6B3C7DA5BF3DAC304ABD8199603C5966A7BC6316843D1F7E083E5E9235BA37F83BBCB4811FBDE6323BBDDEB0F9BCB7E64F3C671766BD85937A3C1AAE45BD38F545BDFCF1EFBDEC5F59BE022B14BEB8A79C3DDDA3043C42D2443D74BD03BDEE0CDEBD5E7BC7BD68C64EBD82541CBD3FC6F0BB9B12E0BD457A0BBEF78F12BE07034EBEE7EB4CBD311B363EDACB483C7EF00D3D3CE33B3D97C6B9BDFD15873C9FCB363DD159E83B909361BD1E40D3BDCDB765BD9FC395BDC82993BD87F9133E77F9203E65EC3DBD587623BD237E5ABDF240B1BDB58644BD6CDCD63C1FD208BD55F9693DED9D803D726066BDD0CCB8BDCB8245BDC6F2C33D4AD1FD3DA19476BD80E5CEBD44138FBA571CBFBCFC324D3DA11834BD6821C53BD5AFF7BC055FDE3D2631733DD9E8613CF200383D0132B63D3747C03D5DCE253D464F853D5665EE3D3689B83D01E8D0BB387432BD51C8C2BC1C7C353C1DFED03D1AE22D3E88AC103EA866B03D005A883DCFC7BABCD402B23D9BC0F33D82195C3D9161FE3D189C06BDB34B563DE189EABC909730BD8AAA853D3B74B23D2487DB3DD774B1BD56E21EBD5703E3BD3A08D43CB3B2BA3D830A9E3CF535133D07563ABDAAB846BC12DB383CDC536FBCA27CCA3C9DDB74BDA4685ABD2F51C4BDEDD6EABD564138BD11B312BD130F373C732C69BCD364FCBC4DE8893C6393243DB5A666BD880319BD2A94C23A24828DBD9E6E97BD5E18073DEFA9B2BD5436923C84B69C3CC64AA63DCD04E2BC86986BBDF707373D5289383C272C863DE56356BCF17D583D03AB813D11D76C3D6DE62FBD49D4873D339D5EBDCABE53BC3975C93B0FF8DE3C1B315A3DA1C075BD13A0863DA18DE83BA8A15F3D5961A43903A0813DDC815BBDF7B48E3D1C36293D5B3DC6BC8A3C783D9C321E3D84D2CBBC696D92BDDF1F643C773D2A3D66FB86BD12D2493C3B31AC3D12CB9A3D6F04AD3DBCE3E63DAB97D13C77F91BBC176C5F3D9C78E2BC06AF133DC273983B1CD808BDE4EB0D3DE09D3E3D94A088BD6173A93D57CF443D24A2C23D2C6AEA3D5041223E378F0D3E2DCD0B3D04C1893DDE92793DFFC5B7BD3F9F85BDB898063D00F8A33CCA87613D2D26C93B214FAC3D1CD5263CEE13FF3B0DAA903C72AF64BCE039D4BC3B1B09BEC5508EBBC2CDCDBD7A91543C2646D8BC70D577BC86608FBC789BF63C0C15043D417F66BD8F4BA9BD0EA397BD054CA53DC05A8B3C5CDC30BD186AAABDC462FEBDD7309ABDC8B9683DD89864BDA90AF23AC2BE12BDD7ABB4BDDCB97B3C70C2803D190C543E33BF763E8B17953DAE1E3A3DA88A3B3D7B06D8BD686075BDE46D013D130C713D0D2E00BD88F5C7BD5F1C86BDA616AF3B2F21C2BC35CA293E0C2DA63CE4C1833D3083AF3D2CC6EFBBBECC89BD6423043DE3D68F3D263A493D843D313C2DEA2C3DFBF11EBEB5B333BE41DF5DBEEB6836BE34C45EBC3EC32EBDED8430BDB3040E3D0199813DB0062BBDE7C7DCBC738604BC8886CCBB4ACD363DF4B9143D44BD7ABD655070BEF8A53CBEBF82BBBC21507D3DD61B433D5D1B0F3E90ABAC3CA45DB3BCCC5C0D3C3C23023D59A236BC706F3D3DB6466B3C35AD343C26E5AB3CEE5BC7BBA302453DBDDCAA3D70AB983D90033C3D0526813D07797F3DCBFE173CB6FE813D140438BD7BF4383D26435E3DC2840D3DA70AC23D59F04C3D351F7CBD197F00BD96114C3DFB4E993C63D7933D8A222CBD395410BD9D80973C36B8193DF779A43D47F53D3DF3FF393CB462DD3DB5F41D3D0D075DBDDDA5B5BD2C1E933BC90593BC79E53ABDDF9AD63AD5776B3C65E0FF3B8D68833D1813F83CAF54143D8961AB3C8572603B9A68353D969F80BDBB4AD2BC245E0B3C605B653DB236E0BB4C4F1C3D89F09B3C22C6963C7E3017BD328F24BD5237843DC15215BD67FA7A3D1C66BB3CCA2E5D3D3E283A3D773440BD9B16F2BC45F269BC10EE4F3C90D9263D1A8B403D6EC0203D6B78693D5D395A3D59C51FBD3282433D295ABA3D2945C23DA548353C3713EC3DA8BCE63D5167603CBDA1CA3C2FB596BBE05C68BD81CDB23BC8B8103AB34763BD82A567BCBEE133BDEB5D70BD9CBD3EBD1F5C54BDEC7BB4BCB5D5D33D4E00F73CE1510ABCBC768F3C10DC9A3C9E6B4D3D177B92BD072FB2BD5CF308BDB5061B3C3849A53A4A368F3D92A5703D9BA2CFBC318F87BCA58E95BD42CB05BC8397E1BB944EFCBCC9D3DCBC045288BD0D7395BD57E8E03C92F3713C31A089BDBDD203BE1B501BBE49F84CBD1CB001BED667E5BD217DCFBCE5D0323C14180FBDB57DB4BC9362A3BDEA9F073ED321EA3DEA1B853D028FA9BD207217BED58307BE5F3364BD55C713BD6759973D12D51B3D7C14753CF95B9EBC1144E4BC1640DC3C3E9E4B3D1202CC3D1461923DBE84123C10010EBC8C4027BD59BEC73DF9BEC53D8E28273D1086FE3C6E2C36BD6B760BBDB4B80ABD1288B23C1BB5CB3DA2DFF33CA450833D433F383E857A043E3663933DFA2A913D44C33CBC9FD482BC42C49E3DBEAE2CBD34DF03BDF1F247BDF8229EBB0F76CF3CCA25AD3D6B321C3E4798FB3D6DE9FC3C4FB2813D6D73493CD14EBB3B3F13123D1304F43C500069BDC0BF613C0376613C54D57DBD27884B3CE0B7F13C52A6153EAF648CBCE8EAE33C948E3B3D24D8C83DA6E5CE3CE7920BBD0CA8E9BC73B95A3D122A64BD4E1E0CBD7910E6BD1FF28DBD41F1D2BB96BC6C3C5654A93D52486B3B2661F13D4BC4503D62C02B3DDC24BC3C3CE67EBD3A2E393D24282FBD18B61E3C831C72BDAEB52BBD9472C6BDCAA5F5BDA3B98BBD3A410EBCE60252BD8681253DBE1E633D2A6194BCE07C5CBD0EB49A3C047FCFBC97134B3D0E1BE03C09EC12BC9E053BBD0D3091BCBD63F6BC791E65BD65C02FBD60F16E3C9CF0373D3A6DA63DB1DD66BD0801EFBC83F5843D01E736BB1444693DDEDF823DD7D31F3DBD82293D8B920F3CA43B7CBC0FE11FBD4DD53E3DA25A4CBB2038E93C15C5983C3FE2963D01583E3DFB69B7BC68F538BB5C5016BDB743F93C80408EBD536773BCA08413BC6C8486BD818C343CA5A016BCD8F4D23C73961CBD69C403BD43801ABDBE582ABD6A95143DE0471A3CAC41213D0AC10B3D92630ABB8C89E23B6605ADBD292AB0BCB03BF33C280C8B3DDC687C3DFE51AFBB379D293D9397623D4939163D2F019EBCC548643D6706A13D44994D3DE43387BDA8A97DBCFAF0713D7792B43DAB573C3CD2A6A9BCB28233BDB1105ABDB1483B3D0C68D33CD80CEF3CA67D6FBC4B5FD9BC7EF31ABEA0E328BE141C1EBA1ECF4FBD09476FBDD3C316BD71D9BEBC219AE83C1E57A43A4A8952BD02E7443D419AF43D06FE633D32CB053DCF4D15BEE2DC1ABE5D759BBD43C201BDC141DCBD22F9FE3C9F901EBD64B583BD34A56C3DDED9ECBC41C256BD8A1E943AF700E53C0AA6813CBC2EAB3C14D884BDD801603CD4E6C5BC975A4DBDEF48903D7165743D0073A8BA028BF4BC483D973DE4AE4DBD38ACDE3CB9B3A63DFA96EB3D6AD88CBCB8908D3CFAA3AD3D009D25BD5EE3CD3D942DE73D1A02A33D3A34EABC3E3A47BD8117393D17CC0CBCCAFB8A3DD72E5C3D47114CBBE9EC073DE676FB3C941B3A3D42D7A3BA372A9D3B1F1DFD3DE24E25BDD36255BD6B3E8FBBC3CBFCBC388E87BDC578E7BCA280E13DF23D16BC71107BBC1FAED03D2FDFF1BC6A91353C8DF3FC3C76B4F83C2AE9703D165E073DFF7F743C034391BDD071163958BEC8BC0ECE6D3D2BC8113C484985BDF2049B3D6176933D80CAEEBC8CCBC83C69A820BCA7B490BDCAD212BD3BE223BDE24D96BDC97D3ABD9B2CB6BCDED5E03C8D1193BD2CAAFE3C12B7FF3D367D7C3D289E373D1D8DB93D7F7B54BDFD76B43C613D853CA1A8173DDD540CBC77968A3C08F24BBD204459BD1566F43C7AEB83BDDE9D7B3CE367B63CA948063D0A4F133DF0FB293D717CE6BC3F7422BD63174F3D0813AEBCA14C303B9A9813BD49A8D43CC86B85BDE07469BD11148EBDB6BFC9BC47F3A13CBA2652BDBFF526BDC8EA813DD9A0E23C29955DBD7A1874BA0D72973CD7719D3CC29C85BD96EF313D62D509BDE2B8ABBD3E07BCBD7D601ABD47570EBDF1BA0F3D1835293DE2C587BD"> : tensor<128x196xf32>} : () -> memref<128x196xf32> - %1 = "krnl.global"() {name = "constant_1", shape = [128], value = dense<"0xCD2A5CBDFE3A59BD318FDEBC6ED082BC37D983BD4077343D6867E93CA99C6CBC8878A83D7F1634BD8EBC6A3D3112843D17F3343C48D8EC3DF1F9173D1E01C13CFC15A93CD4B22D3D4FA210BD6A32F13BD213853DC7CAAD3C397A00BD4E8AAC3C0DC014BDA1EC91BCAB1919BC3B2D15BD6D220F3D4286BF3DAE7D693DF2406F3D3E240ABD0DA765BD96D1043D4230083DF92BDFBBAB0A4E3D5897103DBF9604BD798316BDEB7871BDEBCD0F3CB48E083DE422A3BC6E4EB2BA2EDA193CD1B557BD3C7499BC0EF7B23D42DC14BDDFEF783BBF2D3CBC94A3BFBC7E5B60BDAB4429BCA6C2DEBB9B1172BD5492893DAFBD4C3D7636493D667E81BC3720003DB9DB113DE0D8423B165237BC8366343D6DA6C23D24AEB63C0FB9E6BBAB83C33B53428F3DA5890E3D3FE43A3D4771983D59AF123DA53E6B3DBB18EC3C201E593D36080F3D3AA0163D24A4A9BAD6FFB13D69F796BC9E35C23C2A470D3D423F02BDFCC0E7BC554A8A3CD25D043D59A625BDE95B5EBC71E3863D10B2C7BADA0F603D373D66BDC05E15BDFA9B49BDA410003D4E82B6BD5CD4AC3CD310C33DBE404F3DF79CDBBB5918D3BCA71B273D071078BCC659053C545308BDFC11113D52592D3CBD6F433B361B9E3B8884683CD3C231BDB48D60BBD5428D3C37DD35BD9967F9BCAC29A83CDE354CBD1B35093DFAFC753DE5C66A3D0408AD3D9280643C9A0D79BBBAC416BD"> : tensor<128xf32>} : () -> memref<128xf32> - %2 = "krnl.global"() {name = "constant_2", shape = [10, 128], value = dense<"0x91FE983DB8BA2EBEC4B3ED3D760124BEF651163C2F0F743D542D31BE1332DB3D82F2883E8B74EDBDADDE79BDC499BC3DD07AB63DC115313E59BD4FBC44BC2FBE698391BD5CB360BE14BB57BED06D073E830CEC3CA9C6373D070CFEBD5A88963DE2DF1C3E9260D4BCA45266BE0B002B3D9C507EBE70BF2A3E94E987BAA6C89DBC9FDC53BDB253083EFB481ABE9E02503EDA9BBF3D547985BDC77E95BD10E251392207FF3D1B5291BEEB6D013ED70986BE2198F5BC93CA063E9168A73D0AB44ABEFE8B57BD8B6CA0BE0BACB13D7355A9BD28BCE2BCBF68643E1213593D5C745D3D816A73BEF391743E03E4ED3D6B20A6BD24AED83D8726113E5F3D463D215CA2BD72BB173EC7DE31BE9FF90BBECBDD2C3E7F7B293EEE3F00BE6C0317BECD2A42BE604ACD3DDCD2413D0D459BBD4296C73C1C69D73DC1FF48BEAB7A31BE9945863E447A203EC24A58BE07A5863DE2EF2EBEAC8FC4BD2F46623E62F766BDBD3B163D0F8500BE9C1433BDECA225BEDFEAAFBD875629BE08372EBD17BBE1BCAEC316BD5245AD3DE9955E3CB409FFBC4BA2C0BC13C8093E217C263EDEC1353E2102203D69BC63BE9009CC3D53FF6C3E5DB306BE00CD5E3E74A1E3BB22DA2D3D8D9C6D3EE8DBD9BDDD4E0CBE5E936D3C56FFF3BD03B6E9BDBFFC25BD1F0FC83DE14DDBBDC69CDF3B7D2C6C3ECF88A7BDF7BF36BD46A374BEA88897BE9B5DEBBD12F87EBDFAC1C6BD46BE9B3DF1EC90BE0DA9B83C577AD0BD55F1013EAF2EFFBD788B1D3D6D161BBEA96322BCA535A9BD6505153E608B423DE657243DEC19643EF992803EDF48A13B0F5B043E17C3173E29C8CBBDD59A363EEA767FBC28D5A2BEAECF66BD386D6EBE588708BEFD02A83D86E0B13B911FE13C20B56DBDB73658BDBA32573ECF670DBED5F0D0BC1D7F863D37F504BE592FA73D33C56B3CE67ECF3D0579D1BDE86E563D39A26B3D0494FFBDEDED263E12E5283E9BF6893D7806F63A206E6DBE14D18E3EE8CB12BD5D0FA3BE616D023D9E7D0C3E24C805BE9C8E11BE34DAA2BD5F0180BDE3FD47BEFB1F86BE8FEDD83CA2D4143EEE3E2EBD664A71BC69C81DBE6F7DDFBDE84608BD6B3F7A3E29207CBE00C23EBE5996ADBD0BC4E33D0E415F3E8A8C10BE14C0BB3D8E5B9DBDDB2841BEEAEACEBCD02FB83DB4D8D2BD12B054BE83A825BEF4AF833E7750B93DA82F46BE45DF8BBE6BC44EBE4FC7E0BC62FE863D5F59B93CDAF194BD96950FBC1AA5FF3CF1AD43BEF86C8BBE0754FABD93491E3C4C05573D7A167B3E31C8DB3C4118943C38F74F3D809B5BBE8C4416BE41ED82BDEF18853E570FC5BCE5F710BEF8C144BD73974BBDD8200DBDEC6C9C3DE2BDB0BECA59053ED77FFD3C160604BE2BB4C73D4B0B4FBEA26A823C917F89BD7BC66ABE197F0EBD188D19BC0B48A7BD3F28283EAEC7573E4DA55EBD379CD9BD7EFE253D0015AABE7EBE01BEAE5581BE601F473E6CDDAC3CA971B43DA48DB6BD72422EBE7AF70D3EC50F5C3EE6197EBE111273BD2849D3BD2C4D393E855FAC3EDA9FD53CAB954CBD52035DBE4A458F3E786BB63D55F7313E6F6E2EBDAC57A03DA0F42D3E1855353ECCE5413E9ECA003E84AAB73D3758E8BE73E34B3EE1A8ECBDF24536BE4D2ACDBD97379B3CE1D676BDD0CD033E2F6FA5BED516D83DECE966BE19F3943D41295A3EC62E3CBEBA34C4BD3A0A323E3C5EA03D099EA0BCCF873A3D5D412B3C633001BE006B89BEA3EC983D1E81C93D258BA7BDD9DA9BBDEA39113E2A7792BD6AA5023E88663B3D406218BE0973ABBE27D0883CE606A5BDCC4D8DBB96DDC4BD2400E73DB027A5BDAF8F29B903B1993D8FE4233D344AF2BAEDACCE3D636BDB3C89473CBE8255403D0A64CABC8E27253E73C3C73C802180BDCAD2983D1650A7BDC6D4043D382BE1B99CAC58BE94D1033E5421F73D7752953D996059BE190680BD85CDB43ED636483EFDF3803EADFBDC3D196F10BEA6351A3DF29E6A3ED7425ABEB1FAA3BDC4AE4CBE0316B13CE8E08CBE859956BE29A0073E3151FABD63561A3D0BC6B4BE21C5E0BC221E5CBEE8D2223E2F623DBEC778703E33BB873D7224493D24DC06BE942F583D4B16143DB8756ABE27E182BDBFE9EDBC7DD2CF3D759AE1BD9D583C3E7D0F54BEA33E983DF071503D19778C3E8E36953C196177BD671F0ABE28DBD0BC66005A3D7E56FF3D8FE981BDC5A8A93DD297463E111999BAC458113E7B021E3DDF55373D3E2E173E535C67BEE667ADBD6C216C3EA8FEE4BD7949D6BD501520BE0BCBBDBD405403BE03451C3EFC37B8BD0D905D3D1E6667BD306E22BED0731EBC713050BE238BC6BD428A3ABD974C1EBE1066E23D644E4DBDE14284BE6C73343E4691ACBD9EFE8ABD9A6DEEBD8170A43D06437A3E68EFBBBD75FA3E3C82C8AA3DAE33D33D1D4EDBBC3E166D3D47E7BABD3BAF49BE5B1F873DEB44893DA4A7943CD6A729BE822CC4BD42DC2BBEAADC373E11120EBEC1D34BBEEA11BF3B177A803CEE9FB9BCB99A0FBD9E40B63DFC44D9BD4AA4B43C68BD0E3E3362173EE89EFF3DDE9889BEDDED59BE934D8BBD9639B3BD98E7F83DB3180D3EC486813EBE32083E58E04F3EF732893DCB18C13D101ED63C07AC06BC38B0003E8FE43BBEE68F46BD60F3893BD3C91DBE27F7963DB6CDCDBBABB2FD3CF8B83EBE226C6FBE5DDA9C3D9C21ED3C9E8346BEBA80B7BC726B5C3E70FC7BBE65A95FBE8F047D3E105F7DBDA7976DBC72C68A3ECF6C92BD15FE0FBEC8DBE83D41FA32BEDCD6993DE6D181BE1228143E4BC55C3E280DBBBD205F4CBE1F24F43DB37C31BE15C6733CB9C78A3D100F8CBCD88026BE36F850BD382030BEE0DFBABD71FBC7BB7F92E6BD6A5DA8BBD4E016BD857A153E55FA2D3E0751353E582E723EC52936BE0380FABD7A0C493D28688CBE485ED33DC97163BD8889823DE1E9463D86E608BE8A19183E205D93BB6DCC23BE30A908BB412213BE35A848BDF86DAABD15E3FDBC26DA853E69AF4FBEDE58013E6E4456BD656487BD5A65C83DF2B8C0BD3F3CDDBD51B009BD234065BDF736983CBB9CC6BDF7F99B3DB279A73E025C4B3D626453BE9A4402BEDEB39BBED9F9FCBDDA6EDE3D70D40D3EA17453BE3ECB83BED1DA7B3DF17351BEEA0AD83DFAEF093EF7C8513C17AB50BDD108A6BDBE47C6BCB576993CAEA8E73DEFC3983CFFC08A3ED3AA0F3CC20CF03D5C5F9FBEBEEE9D3C03197C3C1D1A06BE218BE33D10BD72BE8ADA343E997ACB3DF8D3213E4DF34EBC0240B53AC77A9BBC38BAD13D15EDBEBD1A0B9CBC58EB1ABED3A4DD3C3CEB27BE7E9A23BE2034463C1457B23DE36960BE1AD11BBE6AB9273D6AAA1ABE1EC1373C9E61043E166391BEF93A85BEF23CFDBD086071BED522863DB39E8CBD156C5CBEAABB69BDCC7BD23C3C5B563A0694C7BD8C4BD43DAC820F3D9A0E833D8E103D3E7E53C7BD2F65C6BDB73D1F3EE7A2BBBD61450ABDBBC76EBE9250003E583285BE7FC010BED085F43D0AA2B73D028F9CBEC7CF54BEF82EBABDC504E4BDADD439BD394E523E289CE1BBFA21293DB24121BC4579C6BCF4391D3EF4C5743E1043953D1D877BBCB6048F3EB4D6073D03F4E1BDDA6DCB3D838B7CBEDE75A7BE8CA381BD4056533D1D8F123E7029493E815A0CBD5F0CD63DBA4D5E3D9966803D8768233EDC9B9BBC742F473E2E9EE8BDAC062BBD97326D3E03A009BDD5E218BE6A4E6B3D0518BB3BFBF8403EE345863E1D4A8DBD0CA934BE2432013ECC2DD2BEE6A6803E1963793EAA5BC73D8897D6BD8C7F253E5E7F78BD3C1C7F3DAFBC843EC2D2263D7C23E23DF7FAB83D46D322BEBEBFFFBB4031BB3C1011FFBD05BCA93E2429823D822B873EC861EFBD5DBEBFBE06E06EBD865D9B3D4A37E03DFAF407BDFD6B3BBED0C2A73D88C2A53D6E06213E5B4BB43DABE6033EEBBA54BE6401D23C1D7B0E3EA4C741BE21F3803ECD8721BE6A19D43D224484BD75E898BCE2B4B7BCA2FF47BE241A6BBDCEFAD1BC377E283ECC6B5DBE884500BE9B33223E4E16013EAFB7233E632FC9BEA7B7023DBF0DE53C269F1BBECD69FC3D35CCE3BD0671393E6DCA893D936C5BBDEFA6FA3D53192A3E504A86BC8B31B83E907B2B3C71BD99BDDEE7C33D7D9C843E49AD1EBE4B799D3D7CAB503E8F9D9EBC072C87BEAF1217BD668CA8BD4516303E834F3E3DD7C384BD04E1B7BC7D46A7BD7DD38CBD417E9A3D23751B3E66514F3E682232BD1015833E52F3C73C0BD248BE9606643EBC72373EDBFD3EBDEAE74CBEAD8DF13C28D18FBDB35C35BE3A9233BD4F2E92BEB8E59A3C11B288BD27CB2DBD2027A5BD456AC83C5C18C8BA8B2D933DD120EA3DEF1273BD5E5C313ED487DF3B36E1CEBB64178CBC5E2985BE85590B3E519444BDAFB487BEC97BF1BDEB42A43D55ACB13C2BB4C43CF6811A3D7F36A0BD9E55053EEA47663DCED232BE022FD9BDCD61473D007C443EB39617BE4CC18ABD993309BDAC61283EB22800BE49E8DBBEFBB98EBC95BCBCBD2725B53D0BE4573D8C1D5F3E9ACE17BD1AEB94BC8EE9EEBABC32D83CD086C23D4D21EDBD85B8B4BD946E013EEE03453E3DB2B5BE72CEDA3C8CF4C4BA07B288BE0E0FC0BDD564263E80C5333E2F1340BDD1E8053E4C42F5BB9E2BD13DAE809A3C49FD81BD2B9AB3BEE730643E21E118BDB27C743D5672A53C9018E0BDA89FE9BD008BF5BDD1BE2EBE48B23EBED3F34ABDE110F73C3D106A3C4FEA6ABDE3CD94BEBE39303EC55391BC87072A3EDB24683E21482CBE71166FBE061596BE3F73DFBD23268FBEF26C83BCB95E9D3DA5197EBD977B75BD0B9A8B3EC04438BD56C4D53C2016033EE9A33F3ED4CE50BD5B1A713EC48FB13D320109BE90B82D3EB2E575BE5EB2A33BC0C3983D046B273E6F6834BEA862A4BDDC7B063EC95AEABDE25510BE1C0469BC03C3CA3C33D7C7BDD60987BD20C780BEF8494EB9D0EA26BD3952573DA66004BE2229B8BDE6E3EB3DE614D5BC210CE83D6591393EA14515BD2ACD853D0300ACBEEECFD9BC387E69BDDD49833E41D293BB55C4973EE191BCBDF0F1B3BD6EC70D3DF9C78EBEC9DF80BD300A7F39F4C88FBE4F987B3ED062713EBC63093EB11D773EA81F0F3D4171D83C2E3C35BED5C719BEA9317A3EF88B76BE567DA53D1DD22CBEF5FA79BE87C341BC6E7885BE74A21F3DEF046CBD1A5E64BE2D1F9F3DCE862A3EDD44963E2B5A36BCF4723D3ACA66C4BC77C1533E208B60BEF5F701BE870A01BED4AE92BD7FD73B3CB9BBB5BC4DB1CD3D12DF153EA7758DBD1628583EE388713DDF3175BE513B47BEC72009BE327B5B3E716D51BDCC5E16BE7A66763D4FD4953DBF659ABD50873DBE952933BD63BD383EECEF583C8C2E9CBC1008893DF3443B3E82F2023E0A884C3DC4056BBDC1ADFFBD185D463E3B887FBE9FB34D3EA802A33B63E4363E35534E3D6F9501BEDA7CB43D88CAA1BD908915BD98367CBEA0BC943EDD97DCBD68A688BE988F48BD1AED46BDCB24243E50BB2DBEF28413BEB0023F3E977D05BEFA80E8BAC6C45FBD639D52BE4F2B6FBE11CE733EB852233E3BCD1C3ED208E03DB29569BEBE9A5DBEF41169BE714C883DF0730BBE3BC3343E2C2486BCE8ED20BDB73F43BE1C2D8E3D89A13D3E459ADF3D8E6629BEEFF3693E6997993ADA522D3EB3F39FBDFFBB35BECEB1C43DACBA10BED75651BCA094DABDC4F997BD4701023E29686F3E9092B3BD28B03FBE882E49BE399187BD8EA46ABE6040753E3FA84ABE5AC82B3EEBCF82BE5754563EA4EEFFBD82E7A83DACC87C3B9EF3783E3465033CB6B48DBDC721F1BC4F7183BE15B98DBE6C8AED3CCE37AB3DA4A6BC3D4CFEB6BD9BA408BD5438D93D891B6D3D790B3EBE349B87BDABBBEDBDF835993D730255BEFFB9DC3DE32232BD73392CBE362F84BD9A346CBE00F747BE76A0523DEFA85D3D0DA53CBEC58502BD0D22B7BD17697ABE8384C63D68ABF43D8FC1353E81659E3C5072F2BC18EC64BD6D0F07BEF21590BE1E89C33DC6408D3C2542D83DDC31ED3CC68E08BDDFA62BBE1365D9BDB6BD84BDAC11203E344C2B3D61262D3E788EAA3D86FB813D8F6D563E0886893DC90A033CCAAC3F3EF2557EBE5F7CA63C151D093EB5B0A9BD9674203E4C8C273E34F73E3D30C71B3EF1318FBEC9BA023ED0CF8ABD499CDF3D67AB95BDBE0BFB3DEFA76CBCCAFA473E5948933D533622BE2571283EA284BB3C9EFC85BD9ADED13D1E21B6BD0C0620BD8008383D739971BDE3C1C6BCA1B0CFBEEF0B9ABB6E04713E3F2794BDEC923B3DA52DD43D0E732DBEF7D263BE2454DD3CA16192BD5F14133CC69C373E405D0C3E8CEE5ABE92BCC1BDEADEFBBDB155EA3D3BFF89BCC41320BEFADC2CBEF83872BCB46E31BEC36F89BE046616BEE29AD93D3489843DFC2049BE3F1802BE9E071D3E48108B3B1373C3BDD5BB74BB20FE2ABE038AD6BDE4AD58BD2B1F003E17D1C8BD4918FD3D70636FBDE7907C3E1EDEC73D69B889BD1E4799BE3F7779BE36944DBE2F941CBEFD9A62BE39E5C73D89842BBD7FF65E3C59F730BD5DF1D03C22FE2E3DFA783FBE6BB4633DC594A9BD40993EBEF29154BEE40BE0BC652A543D9B45D5BDC6F04E3DEA277C3D0D4F543E9C4B73BE0E777D3E777FB4BE1F1CBEBDB3F9A3BED999433E7E6C3D3E615A8ABEEB098C3D5AF7373DAE911D3EEDAF453EBB8CD33CD631A13C63703EBE2C7EB5BE172181BE8932EE3C6C6198BE6694E5B945C08ABCC6ACDABD89A74F3E6BA9333E4BB363BDC7DEB13DC4F851BE488398BD362CEB3DFA5543BEBEA658BCA52393BCC69E84BE8C8584BDE28F2A3D1BB7243D713A773DE236EF3CAB06CF3DC45F9F3D16BEC83DA3E705BE792956BE146DC13DB745D5BDC88E1E3DF0271D3EE432C0BC61D0493E2931E93D21A6D93D6B3FE0BC1B0DDDBD1D3619BD1755953DB001043E2CFB34BE7F5FE3BD9383753DCCD0083EBD79F73D8F35993DE11A1A3DE4F11FBE7393C43CE2ADFB3DA9AD073ED56D98BEED1547BE9821E63CC082ECBD1A57D1BD0562A53D8BC6233EED3CACBE89A7623C7069E93D916F9CBEC6929A3DF28C02BD7CAA873DF4F2B73D18256D3E74838FBBE99E6B3E2B4E0DBD1F840BBCF8ED2ABE0978673EC58C52BCA63815BEFFD0A8BD1C91FCBD23380F3D3EFC25BEE9C81A3EF4B29CBEEB63553E1B2A88BE70241C3ECC6B393DD65672BDEF1A4E3E584FA43DE1B81F3B6CFD39BE9596453E1B3FDEBD5C9A8F3D15F17B3DFD3EA3BC62AF57BE49E283BE11F4E53C3205303EBB5A103EC6AF58BE"> : tensor<10x128xf32>} : () -> memref<10x128xf32> - %3 = "krnl.global"() {name = "constant_3", shape = [10], value = dense<[0.0360819325, 0.0303174332, -0.014957685, 0.0604293533, 0.0917338133, 0.0978015586, -0.0705472528, 0.121654645, -0.039008636, -0.0469057448]> : tensor<10xf32>} : () -> memref<10xf32> - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x1x14x14xf32> - %alloca = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - affine.store %cst_0, %alloca[] : memref - %4 = affine.max #map(%arg3) - %5 = affine.max #map(%arg4) - affine.for %arg5 = 0 to min #map1(%arg3) { - affine.for %arg6 = 0 to min #map1(%arg4) { - %7 = arith.addi %arg5, %4 : index - %8 = arith.addi %arg6, %5 : index - %9 = memref.load %arg0[%arg1, %arg2, %7, %8] : memref<1x1x28x28xf32> - %10 = affine.load %alloca[] : memref - %11 = arith.cmpf ogt, %10, %9 : f32 - %12 = arith.select %11, %10, %9 : f32 - affine.store %12, %alloca[] : memref - } - } - %6 = affine.load %alloca[] : memref - affine.store %6, %alloc[%arg1, %arg2, %arg3, %arg4] : memref<1x1x14x14xf32> - } - } - } - } - %reinterpret_cast = memref.reinterpret_cast %alloc to offset: [0], sizes: [1, 196], strides: [196, 1] : memref<1x1x14x14xf32> to memref<1x196xf32> - %alloc_1 = memref.alloc() {alignment = 128 : i64} : memref<1x128xf32> - %alloc_2 = memref.alloc() : memref<196xf32> - %alloc_3 = memref.alloc() : memref<196xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 128 { - affine.for %arg3 = 0 to 196 { - %7 = affine.load %reinterpret_cast[%arg1, %arg3] : memref<1x196xf32> - %8 = affine.load %0[%arg2, %arg3] : memref<128x196xf32> - affine.store %7, %alloc_2[%arg3] : memref<196xf32> - affine.store %8, %alloc_3[%arg3] : memref<196xf32> - } - %4 = "zkML.dot-product"(%alloc_2, %alloc_3) : (memref<196xf32>, memref<196xf32>) -> f32 - %5 = affine.load %1[%arg2] : memref<128xf32> - %6 = arith.addf %4, %5 : f32 - affine.store %6, %alloc_1[%arg1, %arg2] : memref<1x128xf32> - } - } - memref.dealloc %alloc_2 : memref<196xf32> - memref.dealloc %alloc_3 : memref<196xf32> - %alloc_4 = memref.alloc() {alignment = 16 : i64} : memref<1x128xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 128 { - %4 = affine.load %alloc_1[%arg1, %arg2] : memref<1x128xf32> - %5 = arith.cmpf oge, %4, %cst : f32 - %6 = arith.select %5, %4, %cst : f32 - affine.store %6, %alloc_4[%arg1, %arg2] : memref<1x128xf32> - } - } - %alloc_5 = memref.alloc() {alignment = 128 : i64} : memref<1x10xf32> - %alloc_6 = memref.alloc() : memref<128xf32> - %alloc_7 = memref.alloc() : memref<128xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - affine.for %arg3 = 0 to 128 { - %7 = affine.load %alloc_4[%arg1, %arg3] : memref<1x128xf32> - %8 = affine.load %2[%arg2, %arg3] : memref<10x128xf32> - affine.store %7, %alloc_6[%arg3] : memref<128xf32> - affine.store %8, %alloc_7[%arg3] : memref<128xf32> - } - %4 = "zkML.dot-product"(%alloc_6, %alloc_7) : (memref<128xf32>, memref<128xf32>) -> f32 - %5 = affine.load %3[%arg2] : memref<10xf32> - %6 = arith.addf %4, %5 : f32 - affine.store %6, %alloc_5[%arg1, %arg2] : memref<1x10xf32> - } - } - memref.dealloc %alloc_6 : memref<128xf32> - memref.dealloc %alloc_7 : memref<128xf32> - %alloc_8 = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - %alloc_9 = memref.alloc() : memref - %alloc_10 = memref.alloc() : memref - affine.for %arg1 = 0 to 1 { - affine.store %cst, %alloc_9[] : memref - affine.store %cst_0, %alloc_10[] : memref - affine.for %arg2 = 0 to 10 { - %6 = affine.load %alloc_10[] : memref - %7 = affine.load %alloc_5[%arg1, %arg2] : memref<1x10xf32> - %8 = arith.cmpf ogt, %6, %7 : f32 - %9 = arith.select %8, %6, %7 : f32 - affine.store %9, %alloc_10[] : memref - } - %4 = affine.load %alloc_10[] : memref - affine.for %arg2 = 0 to 10 { - %6 = affine.load %alloc_9[] : memref - %7 = affine.load %alloc_5[%arg1, %arg2] : memref<1x10xf32> - %8 = arith.subf %7, %4 : f32 - %9 = math.exp %8 : f32 - %10 = arith.addf %6, %9 : f32 - affine.store %10, %alloc_9[] : memref - affine.store %9, %alloc_8[%arg1, %arg2] : memref<1x10xf32> - } - %5 = affine.load %alloc_9[] : memref - affine.for %arg2 = 0 to 10 { - %6 = affine.load %alloc_8[%arg1, %arg2] : memref<1x10xf32> - %7 = arith.divf %6, %5 : f32 - affine.store %7, %alloc_8[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc_8 : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 28 , 28] , \22name\22 : \22image\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22prediction\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Models/BasicMnist/BasicMnist.json b/mlir-assigner/tests/Models/BasicMnist/basic_mnist.json similarity index 100% rename from mlir-assigner/tests/Models/BasicMnist/BasicMnist.json rename to mlir-assigner/tests/Models/BasicMnist/basic_mnist.json diff --git a/mlir-assigner/tests/Models/BasicMnist/basic_mnist.onnx b/mlir-assigner/tests/Models/BasicMnist/basic_mnist.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f2bd743bb3e5ed6b03cc478ab0a298d0d6b2d07c GIT binary patch literal 115068 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%0A?+|&Rouq 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 (d0 * 8 + d1)> -#map1 = affine_map<(d0) -> (-d0 + 2, 0)> -#map2 = affine_map<(d0) -> (-d0 + 30, 5)> -#map3 = affine_map<(d0, d1) -> (-d1 + 2, 0)> -#map4 = affine_map<(d0, d1) -> (-d1 + 30, 5)> -#map5 = affine_map<(d0)[s0] -> (d0 + s0)> -#map6 = affine_map<(d0, d1) -> (d0 + d1 - 2)> -#map7 = affine_map<(d0) -> (0, d0 * 2)> -#map8 = affine_map<(d0)[s0, s1, s2, s3, s4] -> (s0 - ((s2 ceildiv s4) * s4 - s2), -(d0 * s3 - s2) + s0, d0 * s3 + (s1 - 1) * s4 - s2 - ((s2 ceildiv s4) * s4 - s2) + 1, d0 * s3 + (s1 - 1) * s4 - s2 - (d0 * s3 - s2) + 1)> -#map9 = affine_map<(d0, d1) -> (d0 * 16 + d1)> -#map10 = affine_map<(d0) -> (-d0 + 16, 5)> -#map11 = affine_map<(d0, d1) -> (-d1 + 16, 5)> -#map12 = affine_map<(d0, d1) -> (d0 + d1 * 8)> -#map13 = affine_map<(d0) -> (0, d0 * 3)> -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "mnist-12.0.mlir"} { - func.func @main_graph(%arg0: memref<1x1x28x28xf32>) -> memref<1x10xf32> attributes {input_names = ["Input3"], llvm.emit_c_interface, output_names = ["Plus214_Output_0"]} { - %c3 = arith.constant 3 : index - %cst = arith.constant 0xFF800000 : f32 - %c14 = arith.constant 14 : index - %cst_0 = arith.constant 0.000000e+00 : f32 - %c2 = arith.constant 2 : index - %c28 = arith.constant 28 : index - %c1 = arith.constant 1 : index - %c0 = arith.constant 0 : index - %0 = "krnl.global"() {name = "constant_0", shape = [256, 10], value = dense<"0x05AABB3D63B3F83D52CCAE3D4E19FB3D863FCABD86A1E5BD9A5C12BD1225C5BDC66F17BE3FC80E3DDD6F46BD952D0C3E5D8F153E9D49F5BD9408553EA29568BE7CBFD83E8257703DDD542BBE39DDBDBE5DDA44BEEA2AC13D7DE1BF3DEAF92ABC64206C3E7CA8E7BEB1E4233B56BD4BBCD829023D4FCC9BBE33AB933CF8E9C63CEF1F933E20182F3E315C98BD7BBB903CBEC5D7BDB88CA7BDFB43753DB33EF83936311DBE740CF73DCA7CDC3DE573C13DC10D8FBDF465D2BC2880DF3DEF58AABD351FA93DC3EC33BE31342CBE9253D73D457F32BE9683A8BD9DF3ED3E0CE5F73CBA2923BE695F4C3E78EFCEBD7234FDBEE6BFA83E22C5353ECEA0D23E6C70FC3DFD2F8DBE1ABEEEBEF117BEBEDFFCABBCAD1203BE22E7463DBC69C33ECD8B6DBE1CD6D03EED9DB93C22769F3D32912BBFD1937ABDFE8E3F3D13EA06BD6AA9113EEEA303BE28C8D43C17C412BC8DB2373EB60D09BD4B7BDEBC676C053E36563ABD04DF5B3D28FEB23C6A7CC3BBEC6F4BBD4BBA22BE3AE9DE3DD5252EBE32FBB23E497C32BE4C73293E2FBD0FBE4CE731BEB1EB15BDA043243D7990443EED252E3DD6C127BE7B42E23E86A09D3DB312E0BE82A94A3DAB6D71BEAD3AC9BDF699CFBEC0FCBEBEB989793E4D8705BFA01F113F0C230E3F2BDFD5BD3059383E91FBE8BD0E6822BD53ABE5BD39571BBBA50B4EBB1778D2BD32FB9B3CF5BE93BDBDEC80BDC6FFB13DE4D1733D14B7383EA7EFDC3D69B848BE8157033CA3A3813D4385723C803C93BD31E2DA3D8BED7ABE00E4793C029DABBE984C06BDAAE322BE0E90153FD08B96BD7907043FA602253EA8384DBEDE5AB03DE39188BEF50CF7BE31B9253D390AD4BC5659993E45DE5EBE4039A63D997A883E509294BE957F883EC0EC4FBEC78FFEBD9179C33B5DBF653E6AD10B3EA799E5BC96D48FBE54E7BA3CD657853DEA8B15BE4526D13D268B0CBED3CB653DE620A6BD540CE93BFFA553BEAAD5E73D607538BE3A3AB83E63546BBEFBC4FE3BE0C159BED2EFD1BDC090BA3DA1EE8A3E578614BE60A7B23D96CB8FBD3C180B3EC1CAF03DDC49C7BBC4001EBDD214B03DCC32423DF31316BDFC3EA73D147AAC3D5AFA093E041681BD30B8B53B524B9E3DFEC9C4BCD84297BD7F7C783E0A174D3EC29502BE226CC0BE5EC183BE93542E3EF4ED94BD26B8DFB90E9F0FBDF52B813ECDB5973E3929353E7071D0BE708C37BEFE47F9BE0A043F3F1E1F32BDE8D526BDBEDB673D862291BE1D528A3D9AAF8CBE2F3497BE718FA33E2B55CCBDBAC1B73EAE650CBEA2B178BD84A8B63D0ABFFDBD237BF6BE80C7F7BD6D959ABDAFCE013F2096253E0F0E093D303254BC1245E13DDC8739BEEF1656BE4ACC2E3E8E75553E6EDFD43DA4E6283E55C054BDFC7B983EF262F5BD258B35BE720612BEEF443EBB23B320BEFA987ABDC6163C3E0D258C3E2E87B8BDF771F2BD0745DF3CA52CAB3EC6C413BEA5E293BE0A9182BEEA38C7BDC6E8133FF82395BE5C2F3E3E64C86EBEBC063A3E46F129BCF2451CBD4297B6BD8586253F816C2B3E67D8013E108EC8BD284E5B3EC670873EE5A45C3D886F42BF76C64FBEE259B23EB7C40CBE57DF923E46EF5B3E78CAC93DB63076BEE95E233EA93668BE2D958C3C24C43A3CF864333E037E4C3D4D959E3D64903BBD2D5EC83CC6B652BD103DFABEB5C486BD6E4ECE3D4764893EC81D23BD0290C83DDF2A22BDDFD19BBDE7A9DAB862E2053DB2B69FBE906DB63D8D5794BE2FC8A1BD194C7E3EC9ED273F604694BE8053B13E08EFDABE491380BD2E92293D1B33C2BDF41512BE5A56153D5DEE06BE7B1C393C2AD02BBD59B7CFBC028A35BEBF85473DCF4BE93B08FA0FBDCD18F7BD99EB1C3D366C49BE64DE1B3EFF48883D7743DA3C929B3ABEC08F4DBEF2937D3E7326123EBAEA4EBC0A0B013EA6B494BCD9B23DBC9DF2E83D20B1AABEA43D06BEA01F14BECD01603EFF2C943E090B803EAA24323E0ED6D03D762583BEAC73E5BDA83372BD8935103DD73627BDCC0BB5BDD55A8FBCAC7E0F3D8DD4D3BD232E8E3D9663903E494C883D847F2ABE7E88873DCB7C28BE2328D13ED132803D894882BD585A91BE42873B3E072BFD3E68EF973ED7198BBE3DF1FABB4F4AFEBEE3BCAF3EEABBC23D37DC8DBE4DBA453E51F578BE7D3F643E29F5383E6E4EAEBE9F80C93C2C0FF6BDCFC7AA3E60B573BEAB6CFB3C32D1AA3C8B186CBDF5574BBC3EEA81BE4B99ACBEE4A0FE3EA1F0CE3E4388B83CBD1765BE1D5A023B5F53A3BE1BB2F43C4994333EF2915B3E28C2883EFD4BE03D42F090BE2AC5A73E63128D3EF112C1BEAC982CBF0C35D9BE59E133BE8868633EF29E063F293EFF3E6FF53BBF676794BDA62102BD55361D3FAFF48C3EA7ED39BE1ED2303C53408E3E4048473DF38C443ECCAA11BE7BD3C03D03A011BED49E43BDCB800D3E8602E93D28A411BB6AF3463C421703BEC5E7573E5AE2C93DDFF1F0BBD023BBBDE78E3EBEC4D9BF3D3F25613EDECD613CD9DF973CA43FCD3D788A6B3D8DFFB23D28B584BE0E9F513D2D84013D82DB9A3D01B05CBE65703DBE7BD1893ECFDD6DBE98DF753E86DF5A3E158208BF084BA1BDCEDB583E75A52E3EA848093F654D4CBE0B56B9BB5FE947BE2100FEBD8A668A3DAFA2F9BD226E5F3D81219ABE13E80FBAA09E2F3EF32E453F9EB38ABE154E713D09F312BE9C4EC1BC1F46B6BC42AB6FBEED308DBE2D53CE3DD02B08BE10F10ABEC51F1A3E56290B3E9D4FABBD15CA123E3534DF3DC969E0BDADF9973BF130A83DD76269BD138705BD32FB2A3E17CFEEBD2478053EA462ED3D2817AC3D73330FBE482F8EBB69B39ABDC8339A3D12B6153E83D595BD1EE428BE995145BD5EF8E93D1B9629BECE68CBBDF64B31BE14D5C83D506E563D4FEB123D673787399A06E2BD07B4A23D558369BCA44B373D0CABC4BD0E7085BD40DE983CBEA6D83DFFE0E53DB761313E354786BD55EC033D4F7D873DC2EFD2BD35DF3ABDBBEAB9BD7416AF3D38F18CBDD6D4A83EEE560DBE13F780BDCD27303E4EC46BBD4DB60EBE0E898EBEDE9A6EBBEA8A2CBEAA40CD3E3399D73D2339F6BCB3CBA0BEBFEDD6BB60CD9ABCBB37BDBC09F054BEC262EE3DC6453CBD50BCF83D3BB0F13D51E5B63E9C0941BE05E507BE24345D3E03C991BDCDE676BDC66E6ABC97E6C83D9055DDBD76B1FD3C5FE7C7BD97C4CC3CAECD76BEA10DE03C9B0F0A3B304FF43DD186C63D0055A33E6F302ABE54D9273E25FC7EBE5FA8043D22A2C23DCE7E823D9751C93EC96ACCBE563842BE4E5179BECDCBBE3ED8EAB4BEC065AE3BDB1838BD138A6F3DB43F86BEDA3B72BD0844B6BED0EE533E165B8A3E99A85C3E0600B7BEF01312BC8F4DCCBE31B6603C44E4D83C1098113E6D614FBE98A98E3E0221DBB90E1E45BE5ABF223EBA4CBDBC2795E63CDCA7EE3DF39A92BC376867BD50E7A3BD511B97BDD027D4BDBAC72E3D04EBB03E5B02B6BE1B31843DB511BEBD0310EE3D24935B3E7F5E933ECA53B8BE26EBA0BEA236B43D7AADCEBEFFDF493D2C58853EB5CC3ABD804DAEBDF512C53E15EA803EF84DF63C401344BE2C612B3CFB3628BEB68BCF3D052C983DE794923D534109BEBA5844BEA944963BECF2533C064787BCCB9F323B2B7E15BC1ABFEB3D854C8C3DACD3D3BD8DF6ED3D479D783CAF60E13C6265F1BCB6DBB33D73572E3ED92FDABDE885EDBD2B9D0DBE3A1B4FBC526ED53D7CE193BDBCDF2E3DEBB3A93D460F8B3C2CF9833E2F39E2BDFF1A12BE9E85B43DDC076C3EC01C25BDCCBE99BD0EADA1BE39C6B6BCA7CC13BE9D8794BD5F2A22BE8B5A21BE05EA87BD0F4CB53EF812E13B51D01A3D72878FBE8705993CB44CA93C7BC88C3D10804E3E302BC53D5BABF1BD4778F63DE86D8DBCA4914F3D8CA4DF3D5F592EBD17EDE6BCC863633E4A53053E091258BDC440FF3D86C2B03D49FE4A3D1EBB463E2C71A7BE553D52BE40FC73BE0AC78DBE17A8793D67C2473E2D20A33D836E17BE0D9F4EBE2FFFA0BD050FADBCD2531F3F440A03BE1045BABD3E1FD8BDABCD943E79F365BD5E2D6D3D0FB7A9BD23D79E3C04E7AD3E9F132ABDF31833BE5F3D073E7EB46EBC6B23F1BDF1758C3DD6C82EBDC229113E556B823D701C45BEC644E8BD6B4646BCD58EDB3D128F9A3E71A1FFBD76BB16BD7309963E004986BE16A85BBD9D09AEBDDADFF83DF28D00BC078A97BEF82AA73D03C7C43E82CDB33D2759863DD0D0163EF758003EC9C763BD43D7803E2E1CC9BAAD9E38BE0D9828BEC3C0F0BD043BEDBDCB52DBBD7B2C2A3E19DAB53D01BCEA3D253F46BE1A0F1BBEFA54653DB6330B3E0E47FDBC9DDF4ABC80B6A83D1B70853DB69A74BDB0B418BEF802043EE20B7A3E949E2BBE66D6B63D6461123DD9ECB6BD2F503CBBBA4909BE977A6CBE06FC1F3D1B432BBEF6E8363EE533C1BDB6D199BCAE530C3E9AFFA4BE6CD55E3E1AFAA93EAD84F3BEC724E53E5AA19DBEC55B1CBE418D3A3ED3FCB5BDE306293E92272A3D41073B3EAECE3B3BBFFC9BBE498F1A3EE6928ABD92C62ABEB5FA0CBE3A31B23D9DA625BD2F7D17BD464439BE0D25283D9892FE3DB9A72DBD6E7C82BD5DE30ABEBC79B83D9E68133EA3A1493E8B8EF8BC261F3B3DC5B3863DBF7F41BD5184B63DC647253D4D1D56BD5C841FBE4CE7443E86AE0A3E4C8140BC4C46813D1665E1BC264EA13C224A9CBD2D4C273DD8CE09BD22768FBD8D464CBDEFF516BE9AC84E3DC8E577BC158EDD3DA72CCB3D64DF0BBE56F225BDAA3BBABD1D59713E9AF484BEEBD035BD262FEC3C1603543DAFE37E3B28AB203E7E71CF3D5F6554BE0694C0BD4985823E6D3B1BBE9E94C1BEEB21193EC7A8D23DED585FBE3BDE65BAC80EEEBDE814BA3D1B26083F5A423D3E625D1E3E02B29DBD890F9B3D9BB3753E993DE7BE793C063B8AD5CBBE18CC05BEE7B6CCBC44448D3DF15D2ABD457B863D3AF881BDF7B73F3D88AE4DBC9C18EDBDAACA6EBEFDB88DBEBB535FBC92B695BE14DDCDBEF0DFBBBEBE41AC3ED84E4EBDBE242BBD861A85BE637E993EE643E03E367A743D658401BC7550C3BE015260BE59E7803E7EDD313EB1AE32BEA1661EBEEF2B393EDE2AB73E866733BDA22FBE3E02B3E7BEFDC63F3E7F3C57BCB96C12BE645013BF275404BE5975313E1BECC33E7C071D3ECF4C23BE6DF3173D14158EBC76630DBDCA0733BE2F3DDF3D2098993D1EDE1B3ED30229BD1CCE8A3D8BBE1EBEAF78273E9D52693E8BE43F3DD45AF4BC1CFDD43D3E3C42BED2F60A3E40C8B8BD1ECC863E71BC91BE8FE9253FE86A0BBE4F4D843DD98CF63C9ADA8D3E115763BE24E8243E6F9575BE21CB65BE65AE69BC2113E93E1F176ABCDEC649BE1F438CBE167B353E09E9933DC0AFF4BDB24293BDBD50DF3D4B6033BECC59B6BD3DD22F3E0AF473BD9B85E93D982F293E9905B4BE203C0DBD0F70F0BDFE5B09BE68F523BE173A873E8D30DF3DF224B7BD9C6B31BE358B5EBD2F8E3B3DCF47A73DC14FAE3D9446A43D818D77BE0298BE3E06BCCEBD557120BEAA8A503D83924C3EF1C47ABEDF0E0A3E3CC90F3B3554FFBC648AF83DE8EE01BE8A2142BE91AC2A3EA39FF93C2BC41E3EC80258BD4537D73C99EA68BE1B9909BEFD849C3E2C6BBEBD15313DBE8C93CC3EFC8162BE774B303EC6C5F2BC2F38E13D7AF1B8BDFCC661BB6903183E9651533D041C2F3E590BA73CE8278CBEF63C67BEFC7814BE82D74DBD6BC1833E6E37373E4D30D5BE9870C23C0EC230BE2A9F02BF83CCFC3D5BA19CBE68F7183DBE42453E0502F23E51B4DEBDDCF6C73BE24A3EBD625DF9BE8029253D876CAD3D3785033FAA4586BD6EEA193E778D24BD44345DBE58C77A3EF3420ABEB455D63DE620383FEC3302BE912B87BEE65AFB3D7528663BF4451FBFCCCA823D4ED1F03C110EAC3EF28AF1BC2648DF3DB8CAE73D60334FBE62D3783E8069DF3D9A7AA5BEC55411BE68FF83BDD7BB4C3E72F8083D5CFE41BC6BCFBD3C4218053D3A1FCB3D2EE10F3CEF6BD9BEED04033E3F57B13E628E92BE0C74893EF9AC563ED3E943BE5B3EA93E5F649BBE8AFC29BBA42400BEC355733E93B67B3E731D4D3E0514E6BDB34781BE3635E8BDD140A8BE42415ABE77339ABDE851C53E796972BE52EAD33E4EB2F2BD67E9253D615B703D8857DB3EAE3EAABEE2AD98BCEC6999BE7E22B8BD03C4D4BD602E513B4EB900BEA0E81CBDC77BD1BE4867BE3CC33337BE109AA43EFFB182BE4C4BE33DDE43CD3DEC7C033E3E764A3B4076033E5402D3BDF2466B3E04ED9FBE15E9153E0031543DD96B393E70279CBD8E14833CB92879BEE87C9B3E3F2DDABE10848B3E91221C3DA646813CB26BA13E6281AEBC10D3483D06CA56BC395D8D3DD3B5C43B8FEA3ABECACFB73D3B84EC3C130419BD315FFB3D84CA7E3D27E8DF3DB467BABD08B92D3E7762A5BE4AD910BEE2D1833EE3A7FF3D83FB5BBDF50BDE3B4A3BEE3C116E08BCE2CB3B3E5B044F3C04E273BD5FDAE73B0846253E36A7533D3FA907BD7A4F16BE65302BBDBB5CC73C782425BDD66C93BD12697EBD75E4CABD06F09EBD8EFFFF3D5C52693D05A5B33D5F68043E524944BB38C8D0BD518C2F3B40A28FBD61B7C33D2776203E45EBD43D1528133E02514BBE05764D3EF7A67EBEB18E913C3868DB3D1C61FC3E248289BE6A44F8BDDF0B02BEA055573DA8EE89BEF345DCBD0E594A3E5C78553EEBF7403EFD99EBBD284F9CBE9743EFBD7D14B2BE574E053F7E49F1BE19706EBED6561E3EA515833EEF3C393EB1C4B2BE6F83AABDE317A8BD48714F3ED93F2F3EDEAE34BEEEEB31BE86698A3EE3D5A5BDF6F6913DB5EFE6BE92F48B3D9BF27DBDA00B893EFC510EBD3DDD383DD81AE83C48D95CBD1A598B3E2E16F63D007956BD89A3643D26CF933A8E75C8BD8F24B73DCE30763EDFA72ABEDE6E27BE3645383E17AC11BC38D6E7BC2CBB03BE65DF1C3DAD0903BCF004D53E245953BE6DB003BED69A093EA10306BB95BA8EBE0C4194BEF43DFBBDD9BE12BEB747F63D0FBEA4BC301AF33CF01706BD24DFAE3DEAC3BEBB41D28D3EB94ABEBD63DD263D65D984BD3BF0893D5E8CD0BEE107353EE7424DBDD014E3BED134083E8A584DBB71AB11BFCDDAB43E72E21CBEE194933D6DA2AE3E685E80BCA5F39B3C7F62E1BD50C60FBE0B45A83D1F74A13EF9EEA23EB70C14BBB90A073D36C696BD7D7A6DBE8BBDA93DBD37A93E04B8EFBD91FB0DBECA78F03D20E0F2BD19DB793ECA722B3C9EF426BE868CCBBD5903D1BD75B111BD22D44BBE8B5C3D3E02CF2B3A57E834BCF3533EBDE017393E701B55BEFE0E2FBCA674E13D0BE1A4BE088461BDCEF2943E304B4D3EAABD97BE94F493BDE567443EE0BEF7BECF46933ED0EC0F3E6D258F3E97A315BD248FA53DB30E2FBEDDCBFEBD586E8ABE8623C73EC060B3BE8567CBBD242ED13EA6E1273E3882703E709CA8BD8B126FBECE9A763E2F07543DFFDE883E59F2CBBD07AD17BEA5EB22BE5E2C3C3D3F1FF33D741F79BECDB80FBEACA1543EF6FB3CBEE966223EC72AFF3DCED0D9BCBA504D3D63BEA83CAA296D3DACD683BD45777FBC582C183EF363D6BDDB7701BE261B25BE248AE53CA3282EBE449B213EBEA4F63D59E028BE61BFB93E1C8088BE921111BE0146C33D3BAA813DA6EDD9BE6EEEBEBD27B98A3D16A5D43D255CB53E175A293C4EA7A5BD614A4FBD0AEA4DBEBCBAAE3CD26C3C3E90642DBEFE7EB63CAEDFE0BDD26F98BD583613BFA420B53EB310F73D7168523E34B003BD9998073E712872BEC51CBEBDA69004BEAA18DE3DEC81F2BE209340BD0B327BBE6EF3ECBD99F73BBE24D3973FBC5057BE957C0CBE2116ADBDF02ED03EF9C02C3E607BE93D1CECFC3D1EE9B5BEF866443E8C763DBEB44F863D0F104D3E1C83A7BDA25644BEA305ADBDB0B7AEBD0D50B6BB303056BEB942AF3D40B0523B70F2163D53D71A3D73F5F8BD6AFED53DCA21C03CD15BE1BD6061703D894863BD79204EBB5002C9BD932B673DAA51AABD84F191BD8F04A9BE2EFA583E40E70DBD1FFA433E8B0B053E8692D93DD88472BE112BDE3D866B9FBEE4C32D3E22C79EBD96B0023F9825F13D67703B3E43A12FBEF84C573E45E898BE239FC23E4A7A54BCAF6A943D562E89BEC6B14E3ED25B41BDA120FE3D4AFD87BD3EBE8A3D495B86BD6FF9653D10B708BDA42D3DBD73D0E4BD4E55BFBB93C9423CEBEBABBCFC42803E0987E0BD4EF403BC63DB72BEC9F588BBBAB9573E1FF6D2BD1369AEBD7B395FBD1A6C323E39E4863EC2D220BEEAE95BBCCB7709BEEBFB8C3C011CE13D589AF93DDFA71DBEE01EF43DEA04243D1BF95A3E68A636BE9F25B23D38F37FBE06436BBDEF12453D2E33E8BCD952133D3B4B5DBDF45E233D8051463EFFCDB0BDE148C33D9A6FA5BD7E5B013ECC66DFBD6F4796BE59B890BD4AFBE1BDCF6AA63E083CE03DB4322CBD1A123D3ECBFCB3BDBBF551BD1CABBB3D38C795BD416BDCBDECD6593E26935E3E3BD6AE3DBF7677BE80E47E3C5B73153EFF70813E1D3DBABDCCA51A3EAB4136BD3DA9093E01CE02BE26A948BE3480A73E42F0BDBECBA8B8BEF8D5273E06BB4ABEF2F25BBEFA5C533EB37604BE8A0C45BD6928F33DE10612BC8CC8893DE2A76FBE6BEE863BD873B2BEE1879DBED17E01BE0E8F8EBCA3652BBD6A29CE3E555435BE5576873E50CB353EDFA71A3D9C622FBD77576DBE2672723DB1CA1FBEE110483C5A72B73DECC934BEE6C5613DC6AA26BEBE72B13D288AD03E69B097BE86C87FBE221E153EDD69043EDBE4D6BE808E5F3DF46C1DBE8886663E7556AA3D544D26BEF63FB9BD411A423DD5E8FE3DBD77B3BCA8DEB9BDE14F16BE47CCCABDFA123C3E2998993D3B8D7EBEA8C38A3E57F103BD2274083EC3B177BD53BE9B3D1DC931BE1A16393E40489CBE4CC4DC3D9665FF3B394FB23D5C848FBE415312BED04A03BFABD8663E3452013EA3198B3E863D2FBDE15E3FBFC451463D2A712F3EFE6584BEDBCE453F2327CCBE2FC3C3BE9F65143F13C482BED1F2353FACA680BEC09BA6BDD82F023EEF9479BDA2E76E3E9806EA3C1946C1BD595EEBBD8DA5093D18B0433EDAE88DBDAE6849BD864F8CBDFB4754BD358434BE63193EBE551BB5BDA4E5223EC66E173DD906A93DA991363DE279D7BC5BBD90BDBC80DD3D171F063C791430BEBAA9243EF4CAA2BD223F563D77AF693EC66C9CBE53CEDC3D35E7603DDD3AD23E15C9513C21643DBE3F81CE3D28F7F33CA17664BEA49CDABDB5AD92BEE7CC323BD1AD99BCA95FE43C6C19E7BC3C43353E392B95BA87652DBEE5F23A3D724101BE6ACEC6BD7BEDDABD9C77823D749149BD85BD08BE07A402BE8043C43CD641B23C4F859F3DC55E2ABE8356653E7258403E7D43F8BD7917753DD10501BE93FC6EBE78F695BD3753823AB90B79BCF7424BBEA4B941BE5A750B3ED8A6583EABBAB4BC119F89BC64F20A3EE98FCD3DABD0E83ED2A527BE1A5A6ABE525C8F3C89845ABEE4B2C7BDF8D24E3E44A2853EC4715C3E69F3133E37DEAF3BC168FA3D4C8EFEBDBCF4823CB2D602BE513CAE3DDE4A65BE9D47AE3D336B37BD98C528BD96210CBC4A93DCBD8FEFE9BD03C822BE9032643E40ABECBD89F430BE825699BC3A8382BC4E004E3C162BC83C7AF9173E09B92A3E927D58BE13B8703CBB7146BE5E5D1CBE9DB82E3EDD05993D76BFF3BD8233CBBD6784153D17439F3E3C7FC4BD9D08D1BD8712E63EB15C46BEC080743E682E04BEBF0BDC3CE662833E37854BBE90AD03BE6B1301BD33AED9BD56001CBD374B033D396B7FBD3116A5BD1C61083E6176A93D9054A83D8FD7FE3C487F2F3CB27BF73CBA7EECBE88113C3E2066B13CC3FBA3BDFB098B3C8E4835BD284C9B3DA3BF0D3E10BF6F3E4C5DA3BC93E2893D71D58EBD927A4E3DFDDB1B3D3533FABDBC8EB2BD738182BDEAD02D3E402FE2BDE4D7713D1A00EB3E876B13BED1C41B3EC92A143EC6579CBD64259ABE007E58BDBC116C3ED09465BE4D44DEBD0BA941BDC14B0D3E4E3281BE78971D3E9C19A7BDEEC9363ECA99713E638438BE18D5663D669D3A3E67B578BDAEC4103DC0B4ABBD170220BC19B9D8BDE126CEBD1433973D0B65263EDF71263E05CE943D6BF088BEE937893D8955483E5D23323EC107AABEE87B59BEF90BB03CCEAE25BD30AEA93D1D724BBDE7362DBD5F975BBDC84F703EE4038D3E7E48193DCBA5733E019D703CD79CD0BDDE81AD3D8C8751BD87D3D03CF2C5CCBE3F15B03E122998BDA335C93D37A91D3ECE416BBEE6CF3D3EC69C623DE414E2BC53A6C0BDF459E2BDE584AABDAD91293E7872453EC3F025BE51B891BE557363BB76FCDFBD10E8873E89C107BDBF1DBFBDDE2B0EBE8428913DD10C853EDB71303EA79282BEB33A68BD37CE953D235F75BD5B84BCBDD5D766BEA0281EBED40F99BA2AA8883E8717013E3CFCA43E067B04BE5A2D283D2B8C1CBED466EF3E8D4B80BEA66DA5BDBC0D18BE804E973DD4C6A6BE15578ABD5A86FC3B81CE80BC061B723ED71BED3E2CC68EBE70D818BE7B369DBDC451713E742A53BD3A93003F8B4B05BF481B183C33B930BC1A94C43E0FAE21BE514DDB3C9F6980BE5FED083E1F58673C439669BEC0FCC23EF5BBA83DEE3E4EBD2D258FBE6E94193E581B04BEB4C9D03D83B0B6BD12E2A3BD6022E13BF55D14BEB03CF2BDE300B13DD3A4FCBD09EAC73E3587493BC2B94BBD660E60BEBBC91C3E9919093E6D7BEC3D7B8E03BDC21AD7BDF6B7563E6128ECBCAAA167BEE630C63D34C161BEAEDAFB3D14700EBE5C07303D47A9CABD93B0853DE305F03C4AD9AF3D6F0F4ABEA18FC83DDDF3DDBC7D7018BECC91CFBC60DA743E597B5DBC452ACCBDB3B2BABD82B3833C6EF38D3E474CD7BD2A6DC4BD7D862D3D832F4FBDAAC359BE361FF13D715F593D057A17BE234DDBBC1239BF3DFBDBCFBD2689C6BC04D34D3D22391EBC3201D93D11A4A43D1F2019BE86A9933D0C62A83D2D9ABEBDA7FABE3DE60A8FBE9A2B20BC6D7B263E85193A3D450802BB02118DBDCD703EBE3BA2963BE9FC53BEECB2683D40E6263EBA6821BEE104CDBD53018C3DFAACABBD00077E3D108A85BE10373BBEDB5A1EBEDDB9623E446B983E5077113E2A26DD3C270F41BE4F56D5BDE920E53D5736453EFEDFF73D8A657E3B013E2BBD2F3203BE79C0CF3BE881FEBD19395CBD27B973BDDCBC0A3D32218C3E2587DDBBED01C9BD5F01FBBC5E73CF3D337D8D3D4A60AEBC2DCE53BEBF28243EEB3F013F20CFFF3D7BF3EBBD95F766BE1EEC6BBC56A6BA3DF2F81EBE573056BE144AC3BD78ABA1BE479C213E48E00CBE6507E23D7D31493A8676333E7028933E153F253E5D823FBE1546AEBD699182BEBFCDCD3D76D6B5BDB6B0873C785F85BD09700C3E293B81BEE8D5773EE685543EC90F33BD5E63843ECEAD353E1BE4093EE689A3BE1143CCBC274F7DBE27E869BE0D4D963E0B2A22BE923294BB4E81933D32B3A43ECC0E923DBF8B16BBC92CDBBDEDC02C3E86EF75BAFB788A3EE403DBBD38FA89BE5A48BFBD0533B5BE2A179ABE8555B43E1ED687BDE294A2BEDD3369BEB52B62BD8DE0F33E514AA13EF3BDEF3BD492C5BE433ACEBD4C0D193E26C9FE3C1EE4AE3D6AF7B73D197DCFBCD9ADC8BDCEAA853E0CD3493E703EFBBB3FFBFC3E44873BBE24FFE33D3EE3B8BD42A92B3E20DC6EBE070660BE78A94ABEE620F93DF4048B3D4921143EDF5A61BE1F623EBDD18FA9BCCDA1A73A858A113E5D7580BE29047D3CCFBCB03E9256B1BEFC30AB3CC6F19D3E5533703D00D03E3D38B4623E2E16FEBDB7239FBD962199BD98E7DBBD1F8498BD9FA21ABD7F09833D923FE83DA3D20CBE2E742A3EE658053DB96EDC3D5F4627BD5E1122BBE21B9D3E17632CBEC66C91BEE6F5B63EED2C1F3E02FE3A3EB8B0153EEFA338BE40E179BE12FE89BDCFED153E051500BDE2FFC1BE71BCBA3E6AAAB43D809694BD17C48FBD0E5AFE3B3D94DBBE3E71BCBD2C8DC83E2D879FBE5671EBBD121F753EE81FA73DC1E9BC3D7C5EA4BDF7F58ABDF898A4BEFD8D583EE59D08BEE4B570BE5C8737BED558793D81AF2FBD935A5E3EA93753BE47E24D3E5862A53D057F653E6E2214BF6F0045BD296472BE46ABAC3E8310123EAA0A983EB0FE89BE00FD4F3D7C2D75BCAEE10ABEB967803C785D663C274F0A3F77C5D9BE3ABD84BEFF476D3D27FE863E8A9AA43D02A578BE7503F73DE21BB83D2987FA3E5C73373EFCA677BD76B22EBF4ECB86BEF4860DBE65698F3EC54C0B3E4EA58E3EBE2E12BEB49DBABE9CD12E3C563E3EBDEEBAE5BDB0246C3E85DA8FBD1EA0803E7802F33DFF36943E02A9A0BE0953E63D6B3504BF1105B73EFCD445BE78D634BEA13E44BD1EFD1E3EB8B8BB3ECCA2C9BDF0863FBDC7A9483EBFB208BE574A5FBDBC4F0CBC88AC51BE77E551BE467D31BEA16B083D01B570BD7E159FBBC64B42BE7536F33D1B16BABDF90EC13D28DA103EA622623E184BE23CDE2E66BDC36F223E48DD13BE4764283EA2A61CBE05102BBEC2A02B3DD661BCBD6CFEC33D08C9D7BC0CE034BD1E8D32BEDB81913EA381F8BE349F96BE496B863E0E8AB4BDAD745ABEAAC5E23E520ACEBD15EFC93E4E160DBF1A06743D85FC1CBE5EA7083EA72FF23EA7153B3D033642BE3BE20B3FAECCB2BE64BE003F071F88BEA873A2BDFF2AC5BE4ED79C3EBEEF2A3E837ECA3DDFA916BC8FD0643DC5D8663EDB6C103D9B845FBD442EA2BB098D07BEEEE3D0BDE1E3FE3CF136F8BC3615ADBD76621BBD85D2D4BDBF44C6BD3B98CFBD3FBFA53E388989BE84CF4B3D569ED93D3F1DAA3BF2DE25BEAF32CE3D9D655DBDB36657BEFEC1F43D2907863E180D0BBE59F0023C92A2BA3E49C394BE36D91A3E292EFD3C1547BA3D62F9ECBE9AF65EBEB736A7BB461D153E06905B3EDCF9523EC49E10BE06F3213E22CD0EBCBFEBC8BD01C2A23DAF030FBE31DA7C3DA86C893D7D4F8ABCCC67CA3D51E364BD74917B3CDEE70A3E0E1900BE33C504BD4C8F8B3D011D533DE671B7BD361546BE1C67243D0C27013E6752ABBCBAE01C3D116A89BE83B92BBE1F64083E66F0473E1AD5DDBC546C60BC30AB183EA7C9E1BD240389BEB3A42E3EC4E49EBE667005BE98EE493D82ED22BE2CF37FBC0BCD513D7E230F3E19C3D7BDB45817BEDCCC2CBE3B139DBD5242803E0ED444BB714336BE955C483C94856BBD3A1CE2BDF58ED2BC3393933D8DE8033E815EDCBDEDB71ABDAA9711BE68F16ABC0D0FE6BD24C0BE3E93FD55BE74A70E3EDCE3DEBDB069533ED7BE0BBE09B5A4BC2F595C3DE13DEB3D6B0973BDE1C092BEC30A4ABE1EBA843E5A3838BD8313043E0F4007BD6D0CD53D66EDD6BD750DB9BEA4D4D0BE4E6A083F591DE2BE6239F23EAFBA6C3E343BACBEC513CF3E9AED21BED621C7BDA3C667BD48C1ACBD195092BD57EF1F3E4AE3393E5D2B2BBEFEAAC1BDE763F7BDCC509A3CF78A263EB4EF8ABD1FED6F3D5F4D30BD96EB113E440126BE56183EBE74BD743D2920893E38B3E3BC19B106BE8D55333E7C531ABE3CAA053E9FAE2EBE079A9F3DCF0892BE9A44FA3DE8B3BDBDAC810C3EE1DB4FBE1539663BA188403EB663E93C4F741ABC32F4B93C6246C9BDF0E738BEB279EF3EC85126BEFF30CE3D6B1FA0BC823D91BD61822CBDAC30F23BBC8F58BD0138EDBD044301BE1979753D4BA812BEADEFD5BD9E0D293D18EBEF3D7FE8F5BD7340343EA68333BE22F6833EC8292C3E95399DBCFBF944BE194E17BE2708173EC36772BED396DD3D9A46583D41F581BE7CDEC93E7B73F3BB0044F7BD53040EBEF6F2C7BD0004473D3A4D30BEE0DA5B3D0D28893D4E9AB53C37F59FB9374403BD040674BD5B82883D9E251B3D128493BDFBB26DBCF6B0CABD1E776EBDEF7A8EBD63E57FBD2444E0BDB3CB0B3E1AE9D93D780B2EBE50C944BE724B9FBE619B88BD4E4A893E95943EBEA59ACB3E9411BF3CA43F6C3D917D5E3E6097853E4160883DBE37A63BF3FA02BFA96C14BDCE48053E795D8E3EDA37043DE00EBFBE292E4E3CB52894BE1755873EBAF543BED83B833DA1D4DF3E6784C0BE498FF1BDADF58A3EFA8FA03DB077D9BD84956A3DF992CDBC365605BD53A2C9BDF7A52FBDD110893D99F19D3C4A90043E1B9E06BE1707D03DEF24CA3EED1661BE4F43A9BEA3D884BE14E0D2BC8F2F40BE699A243DA984043F814304BD7795073DF9CF87BD7936BD3E82EFB03D019D5EBE5BB7A7BE7442503E8A8F2A3DC4D418BD1C47833E82A885BE0356983E70BE07BE0E89B23E78D5CCBE656BC3BC258D1C3EF082B3BE0591CD3E263AB9BB9EFB82BE14F5FBBC3984F8BDEBD410BEB414723D7099B2BD408FB93D35D5143C2F0DD53B8C89C23BBCDC08BCDC2236BE9066E63EB9FD1EBEE7C957BE6760883D753F263EE64285BD55E3B63AF7463DBEF2FCE6BD3DF7CDBD5804C93D6A214DBE271EB63B334EBA3EA76FE63DB95CEDBE279C7B3D2755BFBE7FD3043FFAE0033E7714F2BD2C580EBE9FCE543E5F4D8BBE812E8A3EA82C63BE82BE703E13C315BD9EE7F93D"> : tensor<256x10xf32>} : () -> memref<256x10xf32> - %1 = "krnl.global"() {name = "constant_1", shape = [16], value = dense<[-0.0822488219, -0.108868778, -0.141039595, -0.204869166, -0.17913565, -0.215438381, -0.133805066, -0.195724562, -0.268250644, -0.258212209, -0.0761560649, 0.0132841459, -0.00444464432, -0.414740831, -0.17879115, -0.0386558883]> : tensor<16xf32>} : () -> memref<16xf32> - %2 = "krnl.global"() {name = "constant_2", shape = [8], value = dense<[-0.161539719, -0.433835655, 0.091641359, -0.0168522168, -0.0650264397, -0.131737873, 0.0204175506, -0.121110231]> : tensor<8xf32>} : () -> memref<8xf32> - %3 = "krnl.global"() {name = "constant_3", shape = [16, 8, 5, 5], value = dense<"0x0AE346BD5C65BABDAF37D7BB317C03BE1507DF3DCF86AC3D486E2CBE83EB8ABE4DDB9BBC88D98D3D9CD1223D1AEE40BC316981BD077B1ABEFB48E6BD3F198F3D8987493A89B7AA3D456439BE2AB3F2BD458E5D3B81AA803E1943463EF7535FBD353703BEDD1CD9BE468F8ABE8CD684BE21F7A53DED29B43D8F001F3C3CEF6ABE231B83BD78BBB23CA5474BBDA6882D3E0444713EFB359FBC19460ABE44582FBD3E4287BD029B3E3E55D7393EF95C14BEF69CF63C3A340FBE6FA9E83D6D23D73DB218523D03B26C3D67C91EBEDF3109BEEC82A13D5095EE3D728D0ABE9B04FFBDF21C54BE8DD011BEFCB97BBD90B3ADBD75FB41BE6AEC61BECBC35DBE1887B1BDA4ED843DADC284BE8BDBD4BD097BAABE9FE109BE2B9F01BD78B2E73CED6BB73D08A7DEBD00F03FBE012E65BED851D33D67FE42BD1914D9BC3C14B0BC4E1DEB3C6107443D7F51CBBA3EB5D43D464CB4BDBEFC60BD8C1B9D3D3267D83C03FB83BEE6AB91BE22A155BEAF90923C1EDD8A3D3CB80CBDFAF49BBEEDAC01BE68CE2ABC847AF03D10F72D3E285789BD197E613DFE08333E042C86BD6D510EBECD029EBEF705D6BD0A79BD3D2294993ED6667A3D8F4365BED9F75EBE3C97B1BD83780D3DA082F93DD9DC12BEB3BA10BE60B5D8BE630311BDBDCA593D6827C63C96A783BC1E99F6BD558126BE9F22C6BD5F06123DBD925D3CCC4E133E5F7CA13C6FA2ACBEFF8264BE31EB25BE987F2B3EDF70E73EF81F893EBEADFFBD197E5FBECDBD18BEE2BB9BBD50D7833EC3B0D23D7F4F853D9282D7BE69749FBECF8413BD07AB3F3D4985EA3D390F5ABD566D0BBEFD5D88BE5A2E5ABEEFBFFDBCDB9A5E3DCF9E2EBE2F5B94BE9FA729BD358F7CBE0D5FCB3D52EE473E180DC9BD927D8ABE175D19BEBA41AFBD2F95013B88885D3D7A7A3F3DC1F124BEDAB4BE3C5991853D8BD47B3E4160783D703A523C4BF9C1BD29B4D8BDC9D86A3EEF34513ED31BB8BD297B7DBE95BB133E4FD2543D1940C4BC5FCDCC3D88F869BDBE589BBD524C6BBD3C90513DF452B13DE4147F3D1C351EBE9BE30FBE749EA53C1A69E23C2423D0BD805EEB3CD41403BE947268BE6F9D89BE4E70083EFFE29F3DFBD4FCBD19E314BE120E31BECC69993D42E05B3EC4DA98BC1A583EBC538D21BED4F220BD10F66ABCA8210FBD08D00C3E02E5803E4327333D860BC9BEE08D9FBD6593193E4721533E6C5010BE8CC745BE839A31BD73C8B83D47485E3E0F09ACBDDF144FBE9EB906BE838ACCBD2E47E1BAF127BCBE86C79EBE632FD3BEF5AF04BDBABF13BEDD6FAABD9FEE84BDB82288BE5FE871BD558BD1BD38ED143DB76A0C3EC28719BD4222BFBDBE15E23B97DAA53C886E6B3ED4BF13BCD3482FBE28BC38BE12CCBD3C3CBC1DBE441856BCCEFD07BDCF84AEBDAC3F63BE781781BEC1283DBEE34B66BDE799C33DCE58D4BD33DB2DBE9B2321BE3DD9EE3A3F46C83BF293C4BBD10E563E6DDD823D145C293E48A28D3E667D6BBD6536B23D9346173E3DBA0B3E23481CBCCBE2023ED9CF90BCE2879FBD57FA05BDAC441BBE92AF0B3E1946F63C986292BD772321BE3E8FA3BD9A23C73CD69BD73B1F000EBE3750E83D1724733E245989BDB45002BE1279C6BCBBE45E3EB34A763EB6AE69BE09740CBC23E348BEC7E4B6BD39B736BE99E84BBE75729EBE86B3E2BDC66AF4BD05C42A3D2B1A3C3CE587B9BD855C25BE867E25BE79C1BFBDD544CF3DE8186C3E2310AB3EAC8922BE6946E5BCD5EE1B3EBBD4073D0EF7503E7859DC3D9C38023E848AD83C4EF93DBE395C5CBE87121BBE290847BE413CD0BD2ADA88BDDBF339BEDDDF66BEABDE7EBD706557BE3971B2BD7AD806BECAF0F3BD5F2B19BEFEADCC3DD0D4F43D5CEC693EBB2EEABCFF24353D404C213E6C2DBC3D00E7683EABA5B2BCF749443E3AEB963D9566483DDC9920BD91BA40BD00696ABE550814BDABAE293D4CF99EBDE7B185BE7CC7BABDB91331BE3B1074BED5AED53D6075FFBC29EC82BB86554CBDFFBA0B3EE0735E3E567D4DBDD1F02BBD4DEB81BD8F218DBDD1EF0B3C0574793E2F3A0D3EEBBD36BC0B5C12BECB60E43DCFC7953D24CAB3BD7D2D493D1B8D3FBDF10940BEFC632ABEE31050BDE294ADBD8DC2DB3C2A23B1BD8CF43EBE6837F13B6FA70BBE1FEA76BEBD138DBE8C1CD9BDA92957BA3D8D9EBDA79DE63DDAE7C83D874622BD2221033EDE3EB33D97748A3E7A8C4F3E6480543EF404233DDCDC18BE04A8BFBD73E1DCBD686247BE6DA68ABE507020BED215DABC4CB8C63D965A0EBC615277BCD2F237BE1C0F70BD6C03A2BD88F961BE8559DC3D834402BF74AC9EBE73D611BED807643C624808BD84907ABDFB7269BE33F52CBE4765F0BD375ABABDF006853DAC4671BECC3689BCAC60EF3C67B5563E2C732FBE22B4A03EA768633ED51973BE08DE2EBE8C3A5FBEE0414B3E0BFB2C3E4E2D7C3D155B2FBDC06989BE92CC873DA175953ED2CC193D9B592B3E63CFA5BE578A84BE5AB794BD9E1348BE761B913D91679D3C487595BD8A6D61BD904BD8BC468040BE2A40BE3D9ED641BCE9AC3CBE3DE8F8BC8C04A6BDD44BF23DB9130B3DF53B1BBE6539FFBD1041B83E95929B3EE79C233E9679F03D8B03323E29745E3E46B5C9BC907D54BDD0ABA4BC50FFD93DFA76ECBD0EF0D13D2E1682BD3D9BEEBD0DBC08BE07EB94BD581CA03DAB05A13C2E7CD93DC054A93D0B131E3E9B1197BE9DBA44BE50AE95BD1FC5433D17AD4E3E47D262BE4E5592BE52C9C9BE7D3104BE2B598CBD2B2E823ED38FC73D55966FBDDA9F0CBEE98381BEEADA873EDBE5393DEAF87E3D23DD373E1077333E364EB53DC058BD3CC8BD9DBDF9EE9F3DCFB93EBD008CACBD5A5784BD4F8800BEF622ACBD40B8683C7C0E113DE49728BEDA807ABE3B23BDBEC7D538BEF3BB0E3E85C1D23D3DBFCCBD7C171FBEBF8ECDBEB114A43D6750EE3DDEFC473D0CE2533E907ED63D730F98BB812A773B285A41BE4277BB3D82A3B5BD093E3EBDA49D25BED24E1DBDAA3347BD138854BD74FC863D0FCCB33C7CA302BE344946BEAD488ABE5E4CC13DAAC3683ED84CC33D0BCD26BD21A373BE3F6B0FBE693A243DF8F15B3EE82F8E3D2EFC9B3EDF6B8ABD962377BD446A63BC94A7643E63A9F63DCD0380BDCA319FBD8BD18F3BBD4287BD02089ABE1A100EBE1C3662BE5F3225BE72598BBED16491BEB9CE5CBE3D0A97BDCEA648BE00E58BBE316886BE56C43EBEBEDB663E2484AD3C4AEC543A1E45373C8CCE863D53F909BD147653BE148B52BE047154BE4276A2BCC8E04E3D0E8A9A3BAA144EBDBEE2713EA0F383BD03035B3D62BE893EE5F6B03EF964513E6DBDD4BE210D7CBE0BFFD5BD148737BDC2A0DC3CB650B23D77CC65BE067E6ABE9D43D53B081794BCF538AC3E213B533DB3A3D1BD8CD66CBDFE1924BE93E81EBC903F56BEBCECB23DAC43CABD53CF0BBEE54950BD1A4F23BE6166A63D28F26F3D1AAF67BD24B23DBC0EBC00BE175D1D3EA7EC10BDEC80A7BC83A929BEC573A9BE9B9865BE290E953C9F6369BEBC018E3D988CFF3DCB5AFE3DAC9E4DBD551DBE3A68C0C73DCBE1853E67F62D3D1CEDBBBD3536883E4054453C3107823DF95D953E6BD856BE28DBA5BDF3181BBED4BB8A3C8907D73C1D5093BE055E1FBEF052EDBD3EEC29BED11547BD2F50BBBDE951AFBE80EEA8BDC3E915BE99BF7C3DA89283BDABB1D73D2984053DAE7624BDDA6A2BBDC0ED15BEBD773E3DBC3044BE2612C7BD993EDBBCBFB60EBC84D83BBEDA10053D87DA603D3575673D7253B93D872A95BDB6FF263DF807913CC1C5BD3C18ECAE3D6810963D4D4F973DB587493EEF11083E981CA6BD7183BCBD1C8DADBC8208853D2960883C6EB84CBEA0B6C8BEC1A35A3D5CE1173EAF8082BCD2C73FBD362D40BE32D81EBD27C4C4BD693477BEDEFDE1BD0EA3FFBD1BD746BED83358BEB801B7BD1DB9E5BDEF834ABEE3B5E9BD631A74BD852DCA3D52B047BBD63FC23D9F668DBE84708DBE9DF1DB3DABE92A3E0B081FBE9AC8CDBD691567BDB1752DBE0085E23DD0C303BE1C1E69BE7C3CC5BD78BDD0BDD1F4D1BD2B6FBABDA650CABDC5A801BEF7A78FBDCF8709BD91DA50BEADA50EBE6F2A66BEC420ABBD7274C33C7BBA243EF8A821BEB81372BE68133FBEC7DEA93DC4E1FC3B077742BEB2DC16BD389211BEAAEB3BBDA043173DC9DF90BE5C7D29BE7EF63DBE54916BBEAB8E36BDC72954BE191E7FBDCBC4D9BCA3F6B9BDB3EC90BC04E95ABE81072EBE36EA4EBD8674243E637AD6BD9DBC3CBE596EA7BD969FC53CD9E9A13E1DECA8BC6DCB17BD573C82BCA7DC8E3D81E9D03E46D1443EC5BA1BBEB2F8A4BD057E423EABDB823ED9A8B93B863982BD20A0C0BCA2BDE93CDF26DDBD038AA0BDB9E7E23B5476F5BC4C80503E0A01D33DE75F7B3D3CEBD8BDCE149D3D2DE9883A37D2443E39526F3D9E2D56BEACC9E2BD484E1B3E581C18BDC2E75DBD4B8366BD3A3B2D3E9008313EE12D93BD0A8C1EBE7245C73DE9ADB0BD1AA41A3D45B6F8BD97A334BECF5E19BDD12BF8BD0B4D85BDBBEF3DBCDC723EBE5DC5333E8688693E496DE63D0603AB3D6CD0F6BDD5F32F3EDEA35A3E023F603DCF55833EF9E538BDA2209DBD7C03F1BC2508C33E8A3EF03D9ABB813C139437BE4B2290BC790ED73DE950E73BB04A75BDA59B92BB52CB0FBEB5CB88BDBB2F47BE644F44BD11B9663C568C59BD1F94C73D5FBA3A3ECA758B3E36D5173ECB2FDFBDD81FC9BB603F6E3C0715EF3C00AC2DBD9E3315BE9BBC87BE02734FBEC2656DBE220E443E06B9083E23B31BBE869C61BEE25296BE84D993BDE76E56BD4350903D6E1A2B3E39EF263E76B639BDAF5629BE3C3521BE3B9BB0BDD7960FBC79C185BD4DD7EFBD760394BE3BC311BEA73B8FBDB44E96BDCE99403D65C4903D91C03E3CA58BC83AC02F893E935BD43EBBECA93E1D76593DEFE9BABD887DBABD71EBA4BD56D19EBD9ED51BBE2A388EBDFA8D23BE171B903C5E6B893CB883D5BDCB6A1ABE00AD0ABED81461BC0E2BDFBCDAF7F83DC8FE4ABEF05BD5BC8605D23CFDCD71BDA0FF663BD24EC1BD5AD505BE84A471BEA7E0DCBDC30D89BE09478FBDF95BDE3C061E963E8B20783E0667E83D9FC6C23D7C4F94BBCB808D3D333CF23C18F506BD6459ABBDD61620BD4B20143D663F76BD50FDAF3D417E8DBDAFC01A3D16ABE73DD12C95BB009D54BD011187BDAED71DBD640A92BC9BCD5DBE488A87BE75CF6FBEE1610DBDE778C83D6B4D3B3EE918243E42337B3E8042333DF6174A3E32D9963D4795653E93DC75BD40DB8BBCC13FC6BD099CC3BD2811C53B369D00BEEB39C63DCA68243E3382C2BDFEA787BE2FE350BEBB75613C1E461C3DF1E2BFBD2A0721BECA3092BDCE3FDBBDDCE708BD071F183DF8DDB8BD4890ACBD71DE00BECAC61ABE1A6EE43BAF65553DDAD6AA3C103EE63DE352D4BD602C193DD34E873D8AC0DE3C1C31623C052CE3BDC2FD6CBE2DC23B3DE388A83DFBDA66BEDB00D2BD9923DFBD0266C8BDAA82FBBCA5A5413E22DE353DC18B9ABC4F880ABE33402FBE7C04393E5556DD3D27CE82BC00600BBE681D5FBE75DAF2BD551FB8BD481403BE1FD175BD33A4BEBDBBD428BEAC7F8DBD54FD663D4F80A83DBAE701BEEAFC9D3DA73AA73E1B09233E9DAA25BDC0E200BEBD39863EBFF4A33E2773EF3D03BE973E8CD4D23E45D382BD693EC53D4EC2D0BD8F1094BD20AF913C0EFBF9BDAAF58C3DC7FBA4BE8A11E5BE4F4359BEA08133BD378152BE64314EBEC8C567BE5A6AA6BE90D73DBD06FA1CBE40E035BEF04BB6BD03FFA6BED6EED83DE21A963EC7D3BC3D4402DCBD4F35EFBD701CE53D547D243E32AB433E03D38ABC9212BABDB6060E3C8546B4BD2B6A623ED4D7A23EF0F30DBE54AF773D979C243C926A663DF903653EAD9F273DBA4984BB1BE3493A067A8F3E1273F43C974C0BBDB16F52BEBB315DBE7CCED2BE773E4ABE4C965DBE030B06BE25F463BE4E6E81BE655389BDEEEF03BE3AC8E53C4610893D0CB6A9BC7A7EAFBD4E212A3E16000B3EC21E553D0DBF1ABEC5CE33BE0B21513E38C763BDB4E41EBEB55181BE90B6363DD650293E83969F3E13843A3CA541763DA4741BBE4E02E03CFC2E3DBD5376CBBD3D33B93D15B5FABD35DD66BD4B46CABD5779E6BC97CCC6BD5391EBBB083638BEC51C83BD4E87DEBC54B58ABE3F7A38BE9217BEBE4EF57B3C8F0361BEBABF93BC78651DBE5E812ABE5BBF03BEF28D8ABE040F28BD5F64223EF263E53D6BF4A43D348249BEB0FFB5BEAEC10B3E515E5F3EB055F73CB1933ABC54F168BE763B81BC48422D3EE7611D3E8DE5803D1A3420BE9217503C659D0F3DB779D3BC43BAC5BCBC9B39BCACF4253D5EABFF3B2ED4D93DE5E22ABE13DDAFBE6DC5A2BD082688BD2F6BC1BB10232ABE5EE0BEBEBF845FBE4E07FA3D05AB923DA0FFEEBD766885BEF245E4BD9CE2AB3E3805C33DDE38BE3D0F6FB2BA87C93C3DCE72DE3D26CF8CBDD111923D68C31F3D947A83BC41B620BD01981EBE29A4FF3DB79A563ECE4309BCB239853C63F4073E221F893D9B1A12BECA10453D15DD223EDF572B3E5920F1BD077510BE87748DBDCC82FC3D8F7ACDBD085007BD771C92BD564951BD2D5F5CBE4B7D21BE63C8EF3D3BB72939A9DB163EED9E6CBC1BC79D3D170206BC23D5C2BD85ECABBCE2FBFC3D2B5C053E80569E3DDC3BB63D5DAA5C3D029D4A3D1C3B53BDA0AB243D0E98763D3C1EA43D60BF4C3E71FC3C3E0CA381BD537178BCE0B7CA3D791C4F3EB2EAC2BD420124BEB12C6CBEA97A8BBDB3D69BBD16D99B3DDEF8323DE37276BD88295DBE881A1DBEAB354B3D37CE613C34D00DBECD6C003E4860BB3DBD78ADBD387399BD788FBE3C14E4923EF77D943EDAD5C9BD2320CBBD4D4B453EC77E7CBCA5E78C3DF13F36BEFB51653C9EFC18BCC0DACEBE651CBABE3302C93C52A6EFBDAC9049BE6E9E78BE970197BE4185C3BD72FD98BEFB2E56BED23084BD9189BFBD35C405BE93189EBD1F1C7EBC1E6208BE54F5CD3D86A33CBE833AEF3D3B380E3E2F2906BE6479AA3CEE8A433CACC3883CD27CFCBD588731BE25D4DA3DCC3D53BED94127BB474DA4BD7F6582BC63405F3EF7A84ABE43602BBEC62383BD043502BE355C073ED23619BE4FE7D8BDC24586BDCBC5C43DFA42E13E8E72ECBDD5F043BECA7B29BE522C05BE81C372BD282352BE27D299BE39E00FBE7EDF523CF69A253EA165673DE6505DBE3C1F12BECB4F46BD0315853D5B77CBBC7D9756BEC1F807BE7539553EECA9983E7CABCABE6F6CA13A337C243EFCCB183E781230BE768E65BEC5B0FABD8EF6FB3C22FBAEBD8FE875BE712D54BE163DE7BD164D9FBD2884FBBE7C7A85BEE876C03DAF4877BD281330BE063CC2BDCD52713E40F0F43CE2F508BE7A2DEFBD2073823D418D463EE946953C8E6AE6BDFD6FB8BD86C074BB6A0C2ABD70BCE23CA95089BDF455DDBD0A16953DB7DDC439ECBE0C3E5542A3BD94B54D3DFBB498BDA2A0143D98C5893DF0BCA03CDAB2E6BB621D21BBEE18163E9D96B8BDFEF18CBC5ADE42BBE695263DBB76083E044045BEE5C01D3D659A9B3DA77F1FBDB38B503EBB965FBDE2FB07BE64DC2EBEF726AA3D543E133D5F1E073EE0EF673D017C17BED1A752BD5B12CC3C3681C23D1EA4B33D81EF3CBE94A8A7BE6E7730BE59B87F3EFFFAE33D9662FABD188288BEA4CD63BDC546AD3E520030BC3FCA0ABE392FBFBC036522BE971A083EBE972ABE5E16163DB101BA3ED94FADBBEEFEB6BD8ADB2BBE06B8D43E0A10AC3D31E8B3BB8FE830BEACF635BEEA3482BE497244BEAD125CBEA5CDF83C89279DBE910517BEF51527BEEBA5B9BCC8B922BEAFA2B0BE48CA873C4ECC823E68D1D63E600235BE0BDD26BE720E193E71BC4E3D3FC22D3D3D16A7BEA73CA2BCB7CDB03D68D4383CD6C431BDCBA0D53CF4E5BC3D2AD00ABC3894BBBCB006E0BDCC8E433DA3CBB03DA521B2BDA9F4D3BDEDD272BE7325793C80D69B3EE1ED073D22C42BBE20F3DC3D7153123E1121223E9113D0BDCD1E673E9F569C3D5250113D166213BC88C67A3E2386323D19E3073E546EEEBDF65A403DBDA400BE0C9605BEE199843E99C2153EACDE643CED2D39BE603AFBBD6AE45D3E4590053EA0E67DBEC6D39EBD1CAFD83D91D1B03E6FF51B3EB3B638BED53A9C3D97CB25BDEB94A13E6E4A71BE5B46CABD3B2DAABC25C0033EFF6EFF3B480F64BD1BAD26BD4D47943CDDB39B3DB6F017BD8D6A46BE9F408CBE2938703D71A0A23BC00DC7BDD06449BE82A99DBD18E7623D330E15BDB14183BE8724123E59D28B3D25C00CBD4BF85CBE15464DBE637B323E038221BCBC3F31BEF2F6813C978D0EBDD718963D92CC173E0007673EEA2AC03DC5B9CB3C4A94D63CD66E403DAEC1343C686CE8BD653A053E4C01F23CE65DA73DD57D34BE9BDB82BE7D12CD3D4E26E7BD5D3569BE135983BE0D044A3E011E983E8F7B0ABEC55B2EBE965B3DBE9FA7723DCC74A93D826EFABDB90BF03DB00E7A3EBDD7AD3E7BB824BCE6AB52BE030DE1BD160283BC46BEB0BD391860BE3AE69CBAA374C6BD087692BED74681BE751297BEC68E4BBEA31B7DBEB2ED84BEAA03D9BDED711BBEEED807BE6CFDB1BE66D8B4BE84B0DCBC520639BD3EFB093EB52E863DAC48F03DFA943C3E9F6E513ED4541FBE57640DBEC2A83DBD9D8B823D973D4A3D372939BEE90E78BD43906ABE5B88E3BD4B6D8ABE9489AABDD8D436BEA6DB8CBE83EB31BE41B36BBD54E282BECC5CB0BE0308AABE769707BE43591ABE9ED73BBDE39738BE9D26A0BCF10DBE3D80729E3CA2E657BE3045BB3C454D09BD183D0FBEF5798EBD7A8333BE5316043E05EBC23DD24E2DBB318E0EBE2C53C7BDF5C4183E3DC39F3D2D6282BD30CA00BD033D4DBEA2FB7E3D4D7C1DBEE9550F3EB48E123D091891BE8CD7A03D6364063DAADB993C4195FCBD0F2898BD2DA62A3EDBA3353E6D131A3E515637BEA930963DAD73113E687B23BC25B65ABE1E9948BD08A9413E357A03BAE3AC78BEBF2115BE2F5C08BDDEAED83D3685A1BE91A31ABE1001533BC8A5173EBD8265BE1E8D81BD9BB959BE784B2E3D92E4BA3D15422CBE50EAE7BBBBE799BED35D72BE5E5B41BE6F137DBD807D853D616E9FBE9F332BBE637265BE2B89C0BD636BC1BD47FC533E3F5C083FF1CDD23DB5220EBCA7E0633E7D59C53E0C7F813DA9F53F3D6E4F75BE3AA3183E8886843D7A843D3E13A4B33DCB028DBC28BED9BDC34E153E70F5933E6CF9DF3D24A2DEBCBC2AACBCF97188BD80EA6E3E39FC1A3E02E440BE548C8EBCB4EBD83DF7438ABE6734A5BD6B34D83D3A9C36BDB28185BE1DCE3ABED7C1DF3DBC8C25BE9064353DA573CF3D2021C43D84234BBC31FCE2BD7B4D7ABDB88E9B3CF484C4BD3D74BEBEBE18F73D5C5F213EAB983E3E09D753BE5F9B4CBE8C7B4F3E051DDB3D90E314BE3A3B8ABE909D3BBE08B29BBDBD88D3BDBCC599BE58A279BE61871DBEF9B15CBE57961E3C18B3433DACD11CBC25F617BEA09D32BEDEC651BDBEF5EA3CD00F1BBCEEFB33BE9A43B8BD6DB2CBBDBD98A4BC022A83BDA8C65DBBB11043BE4803F13BC703553DA174403E99A3C03E0C2E063EB9236C3E72918C3E6A10443EA9F19CBDFEFEA8BC82E9D23DE177DBBB9A7BDEBCCC0C933E8A0F16BD9D03663E2BC23A3EE8B823BE8B19863DEC42D6BD16843EBE4F8B95BDA95A2FBDA4A0AB3D05AEA5BEB982C53DB18A05BE60EF2E3DA7CC10BECCAB60BDC0F188BD8BA232BD0A243CBCB0BCE0BDE496A7BCE1FF9CBA6011CABC510299BDC6ACA03E18C5D2BC771B313E89232D3E89325F3D7F4A6F3E8A84523D1A3DA7BDD78CA1BB8CCBD5BD066FBABD3B8405BE2233CA3C1113BE3DB29DB7BD7D8B5EBEC9B5F2BD2539AB3DE30414BE0E6A99BE077071BD011C543E390E01BC6A521E3E8C11093C5C1D903DAD73DBBD269C47BD3C5F85BC0F31EB3D54F5403D0BB4B2BDBB157DBEE705A1BE73E959BE59D388BC04C4D5BE6102AABE000DF2BE9200E1BE689C94BEF228B0BEB83DBCBEC965A5BE455DD2BD250BF13DF6344BBE976AB9BD882269BCEA90A6BDDD6311BDEF25C3BD4B7166BD002AB13D250810BE4921D4BDD15F1B3E3E18263E6037D3BDA033B0BDE9054BBED34DCABC05F386BDE5354D3D730CD33DD2371F3EB83B43BE1FD2D3BDFCA1163E9CFACA3DF551D53C224074BE7F72B4BCF76F8EBE8A571ABE896F273ED504B93D2618613D799959BE1ACC333D8D6C5F3E5BDF0F3E6015403B2A59D8BDBC4B043EF280343C12EB753E3025AABE7163B8BD51B115BE1E305FBEAB8D963CA28ACCBD8396BBBEEDA8D5BE4854EEBD9042ABBC5E4EF33DEDB4333EA642203DC11C39BE0BBCC63B613881BD8F8CF23DB672D33E1F70DFBD3EDBD23D0CEF21BEBC69113E139A983E39B2B83CA50F1CBEE6F2A0BB9943053ED5DFE63EE8F7933DA97F05BE3D8109BE5A6B633BA943543E6DF6153CE013D03D089491BCA685D2BDB55387BD8B54B1BD85F9F93DF992453E1317D4BCF9D096BC49B734BEA11BACBDA854F1BC233C47BE1122FDBD4DC8B9BEEFCFEABDA35BD1BD1909BEBD8F2B193E003A1CBE235668BEF72516BEF11D19BE5D7ACC3DF07C953C0799703ED436DD3D8C760CBDAE7455BD57928DBD00FD0A3E87AB283E827646BE48A3F13D7EDDB3BDC97E3F3DEE711EBEDD9BF7BD7EEAA13CD49C28BE6920033DB48A92BEA40983BE62CFA63C560FEBBD7BD253BD354955BECED34CBD8F3789BD303B86BEBB93243D650F37BEBA03C4BD81E9C6BD37CA84BD2E01503DB09CA53DADA110BE7A3E17BE0A3DD93D47EBEDBDAFC3C2BD8E868ABEA8D0EFBC7D26303E59F3B6BDE7F3EEBDDE7116BE6A177DBCBADABE3EA34BD9BD1CBE95BDB2CD5DBC0547C33C5E8F0E3E4361B63D3B7B57BBE3999EBE49B74EBEE25601BE7366EA3D518CF23CFC355ABD660C8EBEA56D48BDF925B4BD1C9FD7BDDBDF95BD81A556BEC0A219BE49CD3F3CA13207BEA9BB0FBEDFF20FBEFE39ED3D11B1F8BCF4B138BE7F1FD1BDFFA3833DB6323E3E324950BE13FD63BE8CD9B4BE612535BED0117A3E44E8C6BD5AED5BBCFAF255BDF18481BD3D41953EE4F61BBD681A233E3A402A3CDB1A903D222FA43E7000D13D16DA943E0A8E153EA81A233EC3F2BB3E1898403E192E903DE1B8C73D4C70ACBD8ECF913CD897C23D090C64BDBD78BA3DD4BD083D9E6B333D1B4D43BD7A0B5E3EED7F7BBC3E4513BE4F33993C4789F83DD450323D176B84BB8C7180BBB6F93FBED58A9C3D244F5FBE3616FFBD9B71333EDD1A38BE138105BD95B6A5BEC14959BE38322ABE0707863B4291783D8528A03DDE0717BD54A067BC8216DDBD6B64DC3D19F7193E91BE22BEA633C4BDDB7E8FBD690548BDD81D02BE722CCA3CA8C6DE3C5D7EF7BCADA757BEDBB0D83C14CB093E45C4EC3DD81547BD48CF183DDD25893E3541D03DEC1C1E3EA98AAA3E6A269C3CDF948DBD5DD2B6BD579C0DBE54AC4BBDDFBD8A3D4D531ABEFA5AA7BBE4E4813C8A5134BD4864D43D92E96CBE7FF3C7BDB71D98BD9EB7723D9D39383E2652A7BC9C7E553D65049D3D80069BBDD442FB3DCF5B3C3D82C2E53D9CA5283EE2764EBBF653AFBD478E2FBE61E639BEC2C14CBED2A5E1BCA01AD6BD7E2F21BEEA79A0BD80005CBD9F38903C2A6A38BDF6B9D0BC2C6F7BBD8C6DAE3CAC7E863D5C2103BE8B2F9E3D3D6E293E19F3143D5AAF6BBEF152113E9AAC693EC22DA33E2D903FBECA41C8BE89C798B9A3104DBD4929EBBD89F7F8BD49E5FD3D01E59D3B630622BD96E32EBDAA3A903DC17633BCB53C6F3D02F2C5BC951EB33D412FEE3C03C8BF3D09FBA6BD9446C63CADB15BBD600891BDFF2F73BD428C77BE682F0DBEADE581BEE293D4BD8462B93D082CE0BBD5FD3FBE5C3262BE41FEBBBDFCE06EBB910D4DBEE32D04BEFDDBC1BDBDB5273BEA191D3CCB04493D031E853E407E003DCFA08ABDCD2A6BBD6279423E375C513C9F3509BED8F34DBE8995E1BDE95623BE0E144DBDA1817DBEDA3327BEDD3E723DC73844BDC53A9FBC06732DBE417AB93BB1ED9ABD63252CBE6480B4BDFD072ABE7BE4E1BD6E291BBD20422C3E27FF583E9A1F6D3D58650EBD43A7D2BD22D7DA3D65FB3F3D490744BD97B843BE9E5DF0BD0FF343BEF93305BEEB4325BE87688CBE1776E9BDB5B716BBC5C809BDC8832CBC025D25BE78E609BD5D9E493C5680023D0999E73D985D98BD8D2510BDACC6E2BCCE040C3EEBA182BBB3AFF5BDEAD14E3B1D174B3D5D3C0CBD307983BD5AFCCBBDA63DA2BD927DCCBD3699BABCFA8D063DD4519DBD599A813D02ADBDBDBA3F6FBEC01134BE5272F8BDD70FF23D345FCE380F332DBECEA012BE4942B6BDD357BFBD2462B9BD26C099BDD897A4BD8BEAC4BCF07EE7BC772E9F3CD06C433E852E513ECD64963A8877EFBDAD31713E3356623EDC62B33D7FD081BE9141A3BDAC5E75BE72FD0E3EAA5F6A3EAC7335BE045783BDF46530BE01C246BD05B900BE101E9DBD0FFB89BDAD33F9BDD2A777BD676F993D065AABBD300A24BE873CC63D5241D63CFC28EDBCFD8BE63D8B34AD3C4B72713EC5870D3E814030BE5C4D833EF0E9193E37B71DBEC315A8BB66D8D6BD95BF013DE95403BE569D833C60F9CCBDDD46273DFBE7AE3DA66781BEF56E9A3C9E1C70BBEA99A9BC53181ABD9FBCB73DA81DF6BD74F88BBDCE8E9BBDF005DA3BC05AFF3DCF5101BD55958EBED4F1B43DCD00BF3D2494533DB9C5513E98E2923E5E91283D7BA72DBE59C4B53CEFC20DBDE05C9F3D952FF63C48F3F0BD791C05BEB1F50F3D1C987E3D84F2003E675BD4BDD99473BE21FF063C0F93743D783D493ED852743CA2C252BDF1F6073C7FA9C43C83201DBEECD268BEE1D932BEEE4BB2BD96D5A7BD81CDCD3C23CC4BBE2D109FBED95E86BE7F3855BE369701BE7FFAC0BC94921FBEC0BB16BEDAB8D1BDB07ED03D6D2F233DD2FF283E339062BD225D21BDA67BE33DD8656F3DE12CCA3E6D11153D2082D03C1253063E61C6D13E5BE4F03E67F8F5BBF815DF3CC159C63CA521DBBCB37F02BE9BC3DD3B47A3C33D91F6783DC2D4B2BDB113E53C6119DFBD9B5FA53D01FD5B3C4DA41A3DD0017C3E7FA7BFB736E9ACBDEEF759BD406D7EBDB438BA3D88EA183CC6902D3D8C6924BEC16F2CBC363756BDF2AE313EAD794D3D7E13CEBD4F1D4CBC0B34493D27E51EBEAE64633D3874C93D142007BE8123D63C8032A83C79FC963D7B32FC3DE2EE26BD552BFC3DD1A5903C2348C0BDED0F303DE5681A3D5246DABDD8B770BC09A7EA3CFB969EBA32920BBE209DBDBEC2560F3E0E6E92BDB63A443E525C583E329DF3BB7029B33D5ADA0F3D4A148C3C5998683C394F283D6FA872BD079A5DBCB501CCBDF4DA09BEBD3B5BBDAACC573DAD650CBE8293F9BDF42102BE78F701BE46E0DE3D74B5B93DE81770BD249D99BD784BD5BDA505593E04CE583EE2AA8C3D231982BEC8EC24BEE43B8D3C88FD2F3DEAB7DD3D0FCF26BEF76E7FBE0E79A43A92EBBBBD6D6091BDA281CFBDF9BB59BECB4A6B3D31B8633CC1F257BAAAD606BE9BA05DBE9952DA3CA06D23BD487056BEA38AFBBDFF06D03CDC4D1B3D5EB1F03D3FB3F5BD53252EBED27CC7BDC7FD503E4FEC413E2C432ABD8FCE3F3DC46560BD9E0D9ABDA009A3BDFD6CDEBD909D05BEBA419CBC5A7B55BEE40A01BECC4154BD473D09BE3B1083BEC6FC41BDFA881E3D8DA125BE8FED41BE146673BE470DC03D5384013D6F85303EA9EB1A3ECEB9883D3B2F8E3C25707EBE0B8F8D3DCED9A93D16C3153EBD00183E65B92FBE825EC1BD6ACF4D3B9EDC403D2974183D6C7BB6BDB316063D4B7C31BE96F8FFBD2FE7F53D3D6B13BCA2B2BD3B54A853BEAEA8903DFE5A96BB5F7CACBDBE23443D1F70593C39F0283D69119FBD85C4353D5AE29D3DD48681BBD964373C38626C3E3B5F103D440B12BE469CC9BB8277E23D03A2233E5F37B3BDE4024BBE6F414BBD725EC5BAE6791DBD34E820BDA964903C974A553B4F103FBEA7CD843E5662F63B936073BE28BC53BEAEA2493D9754E93D240819BEAE0193BEC0463DBEF08ED7BC0A5266BE54420EBE722A53BEB4600EBE8B64A3BD184342BEB5DF09BED60B15BEA16967BDDEA216BEF760443DCF7E6E3DACABACBC29A0833C7E7A3E3ED2395C3D27408A3C6362DCBD06C51B3B99472ABE2506E3BC806493BDBDC315BE38B24BBEF291213C6649FFBC52D4ACBD474269BD5523F93C10E116BE5D5C7ABC59F9313DA1FBCABD00A9893D2B730CBEB547A0BD2375793D04F0F23C5A95A53D49D3603EAA50FF3B1FF534BE09061BBC9B365BBC0A0F6EBD9E7A5FBEAA9B35BD8E1B0BBDAD7135BE8940883B71EE81BDDB2FC33D220C74BD14862FBD93EA03BD548B8FBC7C1E5F3C2E6F423DE35B37BD0D9609BE9D0F2FBD43D207BDB87128BD6157F03CE591763E83654EBE6E7184BBF0D51D3E639E36BEAA1340BB112B75BC8F66463E39960E3D7F2186BD3625563DD3E9803EEF941F3E0620E4BD3A518DBDD1BF03BEAAAB8ABD89F362BEEE5998BDBF11FA3C37F24FBE4AEF63BEB79CECBDF1B9DFBD7136373E9116463E01E9963D3372663E9F5A84BDE767D03CB014A63DEE6D843ECC870A3EC38202BC5799483C0678CF3D0C39703E3B3FC7BDDADD86BE409594BD58737C3D205CC3BD2CFA40BE589EEDBDC1661BBEC2C49DBD5962B7BD9593943C24DCC8BCFEB3CEBD44AD56BE8011BF3D6E421FBD5A6754BE402A48BE618734BE332AF0BD06ED253EE0AB37BEF82563BE57666A3DEEBE92BDE3DBD43B1503513E9191103F6F524C3E878807BE4F94943E29EE893E57A9A03E4FB4EE3DC0FBD43D08BDA13D793A853E785E253EB5B348BDA1DFBBBD232767BD3C77FEBD296D86BEC7C50FBE0C2C083DD3797ABD0390213CBF2B723E88624BBEB157893DC977033DDCFCA53EA70D1A3EF46890BC07754C3E16E333BE1469203E17E1EDBDBE0F2FBEAC295F3B0964E8BDD32A013DEA6C08BEF5DD56BE9A9E053CB30A96BC559E14BDABC416BE21B365BEC30AF93DD86CC03D1EBF1B3D76A293BDF4139BBEC121C03D4368043EA31CF4BD2EF150BE8D35CDBD3250AA3D6F8A95BE8734A6BEE0E30CBE698C9E3DC672683DDC7A453D70F62ABEBF592CBEB9A883BE7642B43C58B3B83D9697C63D8107B93D0A5B04BE15B18A3BDD1614BD2A7F8A3C3B1D2FBE151803BE0B57213B690303BE24E687BEFE0A69BEFC724EBD6B58473DA6A148BD73D2083E196AA73D877893BDD3D0BD3D2DDD583D58CED13DE9ED313C8CF3EFBD8EE2513C35EF093E2474EC3D3DC43ABEF54199BDEAFC133EB76A443DE9E3B3BDD61A25BEF00F11BD99BAE03B22B051BE5E2FADBD7E61C1BC2080BFBD68D18DBD05280FBE7210D6BD284AEE3DD423AD3DC256733C741408BEB78428BD09B7093EC80DD93CA9252B3C8594F93D7248F93D03AE8ABDFC53463DE463EA3DDBCE963D16AD493D563AAABD397FEABD56F450BCBAF7F9BDBE55B4BD43E3293EF72801BE47201D3ECC91D0BD41E091BEE4F049BE3A9E143E5E92EFBD405522BE3F7A71BE3B4612BECDD5A83D422DCB3B12E9FD3C923056BEE3BA47BE9A6315BD758F21BE2C414ABED6AAA4BE430373BE130DFA3CF8DF9FBE4A2AAABE1561B6BE85E0953DAFCE503EA3272CBE74817DBE5AC45DBE63F0943ED51FCC3E1EFAF8BD8A14333DF4B1A73E1A33B93E181C81BEA9DBDA3D1A2AE0BCAC7149BEE21C4EBE0A4882BE442AC73DDAAF6C3E2C97933D04BAFD3D5CA1F33D3343213E770BF73CB5A4B4BDDADA2E3ECC7E223E938601BEBCDC54BE28644DBDFE49D43D0E3110BED74F153EE3BCA1BDAD26BEBD60D3FDBC36E8B1BDA49A593EDB0F763D77EAA23D144C46BDD59FECBCF4111EBD9585CABC9D02ECBDDE42233DBED902BDAEF773BEAFA40DBDF416C7BD26E0883D48248BBC872DCE3D89F2D6BD3B250EBE8B8411BEF9BB8DBEF8A3A03E46592BBD8EAE5ABE6ABA28BD11E304BE118E76BD8D14453D0B44B63DB7CDDA3DB9856E3EE72F27BEC3166CBE9F1A1EBE619D9CBD614399BBB001623D893C99BDDE5CCDBC91472D3E0919AB3D308D363E3AF65B3D8503F83C660E133E1C4BCB3D4956873E1BA1093D35470A3C64568E3E04145E3E5E0F9ABD45F2093E4CC9A23DF86C573ED24C613E3DF8C8BDFE3A81BDF4BB22BC810C39BEB89548BEBC243CBE5770E0BD42ED9B3C0DF6113EEF432A3E678E13BD4A94D1BD494B73BD3EBD35BDD202BD3B8A7600BDBC190EBEBE4656BEEF468BBE141D3ABECD06C5BD2B332A3D5D778E394D09B9BDB9C6B6BDC2A6AD3DE402B6BC983EC6BDFD3AF03B47C52F3D349210BED38A37BED7E941BE4DFFA0BD9373F83D1585B13CC3E79CBDDE478FBE3658C5BD8BC7793EE2303B3E45CE99BCF52280BE47CD6EBC54BFF03DE1DB96BE800293BC3C8B41BD7A1928BE447B88BD4786953D7F863EBDF834DFBD921C823BEFA7AE3DE37E2C3D0A21403E2FBF4CBE611118BE3851C9BC94C857BED644B63D5C6A5F3D21B5E3BD53EB343EF8889ABD49E1453DB4DE5BBEEA2BCABDCBD13D3E01033DBEC935A9BDD1ABDABCCBCFDCBDE4FBCEBD973E593D26C721BE24ED82BDFCF4C93D49F3F43CD922C73A4A75853E1326663DCB1B6EBEBA719E3B25FF32BE9FF6493E326A8B3D9A69853A0B547F3DF34AFDBD30A113BE24B018BED76A3CBE18B6153ED5653FBE5E8F32BE0761873BE8B70EBE8C335EBD005DBB3CC2C65FBD8F89343C793BFFBD28BF25BD8B165A3E2D49C93D60F0AB3DCD0F80BD43A7D7BDD9FD3A3A14E5943E5969BF3DCFFF3CBD1146AC3C5EC0A33D3B8DBF3E092B563D32642CBE2481A73DA9EFE83DCDA41C3E71DB703E93933F3E6C900C3E433DEDBD32ED01BE54EF5DBE174A27BE7A806ABE13CF43BE763DC8BD92152ABD93E652BD7B18EEBC6706CABD7A88B9BD0EBF4ABEC79687BDB30AECBD98C1A73DE1D81A3D26D579BE91F51FBEB4D411BD0FEF87BE4819D5BC2B2F083D83CF15BE11B01F3D6EDDA2BE45B9103E79CD5E3E8E7DBFBCDF794ABE1A0705BE6A76303E67E9313EDFA8DABC17B574BDA8711A3E6D5A353EC84B67BD132847BE6C8BE6BD1DE7D03D2057833DBE71B73C185647BDF49F89BDDF3F24BE3802993E3E73C03DD78754BD640A52BE0D0B8ABDA884C03E3986913D7C50B8BDF0B8B5BD1638E13DDB469F3E781B23BD19F430BE91A9B4BD2647A83DC24A353EFD4292BC9AFD85BE8B5E26BD39310E3E5AE680BD118B6FBE12322BBE201D86BD4CADA9BD991D533C1E68FB3CA72738BE48007F3CC5364D3D79C4DDBDC5B73ABEAB3C4ABD0DA4F43DBBE27ABE3A8B35BEA7D183BE390602BE9D11E03DD76449BEDB043BBE48E5FABD2812FABDDBE443BEABA09CBEA86EBBBD76556CBD2373053C0F2CF4BD91CFA8BEF876413DF562813DBF7E513D04BA09BEE740AABDD23CF73D42D3D03DC2AE74BE28E2C8BDED4001BD3E8A9B3E488AA33D278375BEA74E36BEB22691BCF478813E91387D3A23528FBEF282ABBDA696963EAB8E723C8CABD9BDD52A73BEAF3985BCAB16B2BE9AC6D5BEF7730CBD1F1FF6BCC96A25BE370B90BEAF0317BEF6947A3DBA88EC3BDABD59BE321058BDE82E073DA1F0503D1859B6BD59BA9CBDD18712BE104B373D2E5A223D39B503BE307B9EBCD656B4BD8533053D2EA3E5BD9383613C8F363DBE591C6ABEF61EA1BE306BA2BE5829C9BD95DD443CE153B0BDB6D97FBE2B37D3BCE4BF21BE4B12273CF49A803C953F323D0DAA6BBC4FC0D33C8E950F3E1C0D32BEA2580FBC1265E4BD7BBEE83DD8F88BBD833B81BE788F86BD5419E5BD10DECFBDE19A12BEACB1F6BDF39A69BE103A77BEA19DB3BD63AB09BE34B6C23B6B8E9DBE1C545ABCB5D5053DF4A2C1BC7A25C73DF7DE51BEC03D2F3D352D123E850EBC3D62433FBEAA4E163EB4872A3E61BD063E1CB9213C75AA25BEB962BA3EE983503E3A14C33D7E3C64BB0E3116BE01BAF63B2615853D8166743DD2658C3D6BF19DBE779F7EBEF2DA6E3CD5F9073EE6EF493ECE5FDDBE431A8E3DEC6E85BDB27110BEC7F8C0BD2E12D1BDA749C2BB028DE5BAC2EC55BE3FC2C2BD7B9255BE68F2523D9E1C10BE92BD5F3C1841E9BD"> : tensor<16x8x5x5xf32>} : () -> memref<16x8x5x5xf32> - %4 = "krnl.global"() {name = "constant_4", shape = [8, 1, 5, 5], value = dense<"0x16E911BCDD9772BE234202BFF73884BD2037113EC08B17BF9B58F3BE48214ABDC7A9443FE9E4863E6BC8FBBE56CF633D6E6D823F18010E3FD621E2BEAA5D23BE0ABB0E3F4B93173F58E896BE5AF91CBFF8B01D3D9B71673E39CD5FBED052F4BE5A5A95BEAC5B23BDA1D85F3E2759FF3E82EBD83E0CDA463D5E38CFBD14C78DBEB52590BBC2F4063FB38BCE3E40751ABEE744A7BE28CD22BE4ECEB73E17CABE3E425311BFA07CC5BE44DD31BE9F82693E145EAA3ED5F5C2BEB3FC6ABEAFA887BD42906EBCFFDF913E8C07C2BCE606D63D6DDB813E1F3AB93EEBE2303F2E7AAB3EFC80D53E3C08C53E70A8A83EE9D8783E092AF0BE55909BBD5BFE13BE65BA31BE70B17CBEA30179BFB33237BF4FC809BF49E51DBF709BE5BE26C24BBE9FADAABE29BAB2BE678A15BE8A3F82BD253897BE6432AABEE8EEA7BEBD37A2BDF9C463BE431AF4BEFDC557BE94A36BBD2AAB273E9BDC253E4C90C8BE5DA0C0BC0773FC3DA4AB2D3DB285693E729EC13DA67BBE3E0EA7603E6D8137BC3D86393EA2B0A73E86C5B33E311AEE3C5F3E563E7272AE3E0CB05BBE3EF4F9BD50021CBB2B2867BE470825BECC5EB63D35E5513EBC1920BED21167BEADE50FBF88B876BD1A24D23EF85C6DBC5829F3BEF06510BFEAABECBDD781113EB6B08D3E3F7C2E3DB2393DBC0DDD1E3C52057C3E3128203F62EA2E3F79BC713EEB072ABEBDE9AABE78C843BEDD205B3DFCF8103E90423B3E104F0CBF4DB83BBFB29816BF03B9C4BE09500A3F8E37B13E9D2C81BE066DB1BE26FA57BE296F613EAFAE283FFEC4BA3E8E7A043EBE60E0BD85B0763D8F0F9B3E78AC723EB034F03EEFA6643E47A5C83D643A0F3F16945BBEA954EABEE4E858BEEC93BA3E4560F93E56BBD0BE69C0DBBE017C7DBE8C71D43E589B993E0171EABED09A9BBE5960B7BD345D8E3EDD5AEA3D177330BE250FB4BE71AD1BBEF884B23E88413E3E142D913D9365093E3C2A3DBD26EDB4BC482C07BEF8C5BB3D562A6D3EB0F2AD3EC102293E71C2C03EEEB5473EFA5DA13E2230113F57ACF1BD7AAF483E91BC073EFDBF433DD1D9083EF975E83C8E7D0EBEFC59F7BDE4454ABEDE9500BF71BB12BD4B6242BE1AE6DABE88CA91BE19EB42BE"> : tensor<8x1x5x5xf32>} : () -> memref<8x1x5x5xf32> - %5 = "krnl.global"() {name = "constant_6", shape = [1, 10], value = dense<[[-0.0448560268, 0.00779166119, 0.0681008175, 0.0299937408, -0.126409635, 0.14021875, -0.0552849025, -0.0493838154, 0.0843220502, -0.0545404144]]> : tensor<1x10xf32>} : () -> memref<1x10xf32> - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x8x28x28xf32> - %alloca = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 8 { - %6 = affine.apply #map(%arg2, %arg3) - affine.for %arg4 = 0 to 28 { - affine.for %arg5 = 0 to 28 { - affine.store %cst_0, %alloca[] : memref - affine.for %arg6 = 0 to 1 { - affine.for %arg7 = max #map1(%arg4) to min #map2(%arg4) { - affine.for %arg8 = max #map3(%arg4, %arg5) to min #map4(%arg4, %arg5) { - %10 = affine.apply #map5(%arg6)[%arg2] - %11 = affine.apply #map6(%arg7, %arg4) - %12 = affine.apply #map6(%arg8, %arg5) - %13 = affine.load %arg0[%arg1, %10, %11, %12] : memref<1x1x28x28xf32> - %14 = affine.load %4[%6, %arg6, %arg7, %arg8] : memref<8x1x5x5xf32> - %15 = affine.load %alloca[] : memref - %16 = arith.mulf %13, %14 : f32 - %17 = arith.addf %15, %16 : f32 - affine.store %17, %alloca[] : memref - } - } - } - %7 = affine.load %alloca[] : memref - %8 = affine.load %2[%6] : memref<8xf32> - %9 = arith.addf %7, %8 : f32 - affine.store %9, %alloc[%arg1, %6, %arg4, %arg5] : memref<1x8x28x28xf32> - } - } - } - } - } - %alloc_1 = memref.alloc() {alignment = 16 : i64} : memref<1x8x28x28xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 8 { - affine.for %arg3 = 0 to 28 { - affine.for %arg4 = 0 to 28 { - %6 = affine.load %alloc[%arg1, %arg2, %arg3, %arg4] : memref<1x8x28x28xf32> - %7 = arith.cmpf oge, %6, %cst_0 : f32 - %8 = arith.select %7, %6, %cst_0 : f32 - affine.store %8, %alloc_1[%arg1, %arg2, %arg3, %arg4] : memref<1x8x28x28xf32> - } - } - } - } - %alloc_2 = memref.alloc() {alignment = 16 : i64} : memref<1x8x14x14xf32> - %alloca_3 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 8 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - affine.store %cst, %alloca_3[] : memref - %6 = affine.max #map7(%arg3) - %7 = affine.max #map7(%arg4) - affine.for %arg5 = 0 to min #map8(%arg3)[%c28, %c2, %c0, %c2, %c1] { - affine.for %arg6 = 0 to min #map8(%arg4)[%c28, %c2, %c0, %c2, %c1] { - %9 = arith.addi %arg5, %6 : index - %10 = arith.addi %arg6, %7 : index - %11 = memref.load %alloc_1[%arg1, %arg2, %9, %10] : memref<1x8x28x28xf32> - %12 = affine.load %alloca_3[] : memref - %13 = arith.cmpf ogt, %12, %11 : f32 - %14 = arith.select %13, %12, %11 : f32 - affine.store %14, %alloca_3[] : memref - } - } - %8 = affine.load %alloca_3[] : memref - affine.store %8, %alloc_2[%arg1, %arg2, %arg3, %arg4] : memref<1x8x14x14xf32> - } - } - } - } - %alloc_4 = memref.alloc() {alignment = 16 : i64} : memref<1x16x14x14xf32> - %alloca_5 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 16 { - %6 = affine.apply #map9(%arg2, %arg3) - affine.for %arg4 = 0 to 14 { - affine.for %arg5 = 0 to 14 { - affine.store %cst_0, %alloca_5[] : memref - affine.for %arg6 = 0 to 8 { - affine.for %arg7 = max #map1(%arg4) to min #map10(%arg4) { - affine.for %arg8 = max #map3(%arg4, %arg5) to min #map11(%arg4, %arg5) { - %10 = affine.apply #map12(%arg6, %arg2) - %11 = affine.apply #map6(%arg7, %arg4) - %12 = affine.apply #map6(%arg8, %arg5) - %13 = affine.load %alloc_2[%arg1, %10, %11, %12] : memref<1x8x14x14xf32> - %14 = affine.load %3[%6, %arg6, %arg7, %arg8] : memref<16x8x5x5xf32> - %15 = affine.load %alloca_5[] : memref - %16 = arith.mulf %13, %14 : f32 - %17 = arith.addf %15, %16 : f32 - affine.store %17, %alloca_5[] : memref - } - } - } - %7 = affine.load %alloca_5[] : memref - %8 = affine.load %1[%6] : memref<16xf32> - %9 = arith.addf %7, %8 : f32 - affine.store %9, %alloc_4[%arg1, %6, %arg4, %arg5] : memref<1x16x14x14xf32> - } - } - } - } - } - %alloc_6 = memref.alloc() {alignment = 16 : i64} : memref<1x16x14x14xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 16 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - %6 = affine.load %alloc_4[%arg1, %arg2, %arg3, %arg4] : memref<1x16x14x14xf32> - %7 = arith.cmpf oge, %6, %cst_0 : f32 - %8 = arith.select %7, %6, %cst_0 : f32 - affine.store %8, %alloc_6[%arg1, %arg2, %arg3, %arg4] : memref<1x16x14x14xf32> - } - } - } - } - %alloc_7 = memref.alloc() {alignment = 16 : i64} : memref<1x16x4x4xf32> - %alloca_8 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 16 { - affine.for %arg3 = 0 to 4 { - affine.for %arg4 = 0 to 4 { - affine.store %cst, %alloca_8[] : memref - %6 = affine.max #map13(%arg3) - %7 = affine.max #map13(%arg4) - affine.for %arg5 = 0 to min #map8(%arg3)[%c14, %c3, %c0, %c3, %c1] { - affine.for %arg6 = 0 to min #map8(%arg4)[%c14, %c3, %c0, %c3, %c1] { - %9 = arith.addi %arg5, %6 : index - %10 = arith.addi %arg6, %7 : index - %11 = memref.load %alloc_6[%arg1, %arg2, %9, %10] : memref<1x16x14x14xf32> - %12 = affine.load %alloca_8[] : memref - %13 = arith.cmpf ogt, %12, %11 : f32 - %14 = arith.select %13, %12, %11 : f32 - affine.store %14, %alloca_8[] : memref - } - } - %8 = affine.load %alloca_8[] : memref - affine.store %8, %alloc_7[%arg1, %arg2, %arg3, %arg4] : memref<1x16x4x4xf32> - } - } - } - } - %reinterpret_cast = memref.reinterpret_cast %alloc_7 to offset: [0], sizes: [1, 256], strides: [256, 1] : memref<1x16x4x4xf32> to memref<1x256xf32> - %alloc_9 = memref.alloc() {alignment = 128 : i64} : memref<1x10xf32> - %alloca_10 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - affine.store %cst_0, %alloca_10[] : memref - affine.for %arg3 = 0 to 256 { - %9 = affine.load %reinterpret_cast[%arg1, %arg3] : memref<1x256xf32> - %10 = affine.load %0[%arg3, %arg2] : memref<256x10xf32> - %11 = arith.mulf %9, %10 : f32 - %12 = affine.load %alloca_10[] : memref - %13 = arith.addf %11, %12 : f32 - affine.store %13, %alloca_10[] : memref - } - %6 = affine.load %alloca_10[] : memref - %7 = affine.load %5[%c0, %arg2] : memref<1x10xf32> - %8 = arith.addf %6, %7 : f32 - affine.store %8, %alloc_9[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc_9 : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 28 , 28] , \22name\22 : \22Input3\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22Plus214_Output_0\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Models/ConvMnist/UnOptimizedMnist-12.res b/mlir-assigner/tests/Models/ConvMnist/UnOptimizedMnist-12.res deleted file mode 100644 index 81ee8db..0000000 --- a/mlir-assigner/tests/Models/ConvMnist/UnOptimizedMnist-12.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[2.315216e+01,-1.766676e+01,4.463715e+00,-9.958038e+00,-3.846741e+00,-2.203430e+00,3.835022e+00,-9.207123e+00,-2.539719e+00,-5.237274e-01] -1386378 rows diff --git a/mlir-assigner/tests/Models/ConvMnist/mnist-12.mlir b/mlir-assigner/tests/Models/ConvMnist/mnist-12.mlir deleted file mode 100644 index 366713d..0000000 --- a/mlir-assigner/tests/Models/ConvMnist/mnist-12.mlir +++ /dev/null @@ -1,222 +0,0 @@ -#map = affine_map<(d0, d1) -> (d0 * 8 + d1)> -#map1 = affine_map<(d0) -> (-d0 + 2, 0)> -#map2 = affine_map<(d0) -> (-d0 + 30, 5)> -#map3 = affine_map<(d0)[s0] -> (d0 + s0)> -#map4 = affine_map<(d0, d1) -> (d0 + d1 - 2)> -#map5 = affine_map<(d0, d1) -> (d0 - d1)> -#map6 = affine_map<(d0) -> (0, d0 * 2)> -#map7 = affine_map<(d0) -> (28, d0 * -2 + 28, d0 * 2 + 2, 2)> -#map8 = affine_map<(d0, d1) -> (d0 * 16 + d1)> -#map9 = affine_map<(d0) -> (-d0 + 16, 5)> -#map10 = affine_map<(d0, d1) -> (d0 + d1 * 8)> -#map11 = affine_map<(d0) -> (0, d0 * 3)> -#map12 = affine_map<(d0) -> (14, d0 * -3 + 14, d0 * 3 + 3, 3)> -module { - func.func @main_graph(%arg0: memref<1x1x28x28xf32>) -> memref<1x10xf32> attributes {input_names = ["Input3"], llvm.emit_c_interface, output_names = ["Plus214_Output_0"]} { - %cst = arith.constant 0xFF800000 : f32 - %cst_0 = arith.constant 0.000000e+00 : f32 - %c8 = arith.constant 8 : index - %c0 = arith.constant 0 : index - %0 = "krnl.global"() {name = "constant_0", shape = [16, 8, 5, 5], value = dense<"0x0AE346BD5C65BABDAF37D7BB317C03BE1507DF3DCF86AC3D486E2CBE83EB8ABE4DDB9BBC88D98D3D9CD1223D1AEE40BC316981BD077B1ABEFB48E6BD3F198F3D8987493A89B7AA3D456439BE2AB3F2BD458E5D3B81AA803E1943463EF7535FBD353703BEDD1CD9BE468F8ABE8CD684BE21F7A53DED29B43D8F001F3C3CEF6ABE231B83BD78BBB23CA5474BBDA6882D3E0444713EFB359FBC19460ABE44582FBD3E4287BD029B3E3E55D7393EF95C14BEF69CF63C3A340FBE6FA9E83D6D23D73DB218523D03B26C3D67C91EBEDF3109BEEC82A13D5095EE3D728D0ABE9B04FFBDF21C54BE8DD011BEFCB97BBD90B3ADBD75FB41BE6AEC61BECBC35DBE1887B1BDA4ED843DADC284BE8BDBD4BD097BAABE9FE109BE2B9F01BD78B2E73CED6BB73D08A7DEBD00F03FBE012E65BED851D33D67FE42BD1914D9BC3C14B0BC4E1DEB3C6107443D7F51CBBA3EB5D43D464CB4BDBEFC60BD8C1B9D3D3267D83C03FB83BEE6AB91BE22A155BEAF90923C1EDD8A3D3CB80CBDFAF49BBEEDAC01BE68CE2ABC847AF03D10F72D3E285789BD197E613DFE08333E042C86BD6D510EBECD029EBEF705D6BD0A79BD3D2294993ED6667A3D8F4365BED9F75EBE3C97B1BD83780D3DA082F93DD9DC12BEB3BA10BE60B5D8BE630311BDBDCA593D6827C63C96A783BC1E99F6BD558126BE9F22C6BD5F06123DBD925D3CCC4E133E5F7CA13C6FA2ACBEFF8264BE31EB25BE987F2B3EDF70E73EF81F893EBEADFFBD197E5FBECDBD18BEE2BB9BBD50D7833EC3B0D23D7F4F853D9282D7BE69749FBECF8413BD07AB3F3D4985EA3D390F5ABD566D0BBEFD5D88BE5A2E5ABEEFBFFDBCDB9A5E3DCF9E2EBE2F5B94BE9FA729BD358F7CBE0D5FCB3D52EE473E180DC9BD927D8ABE175D19BEBA41AFBD2F95013B88885D3D7A7A3F3DC1F124BEDAB4BE3C5991853D8BD47B3E4160783D703A523C4BF9C1BD29B4D8BDC9D86A3EEF34513ED31BB8BD297B7DBE95BB133E4FD2543D1940C4BC5FCDCC3D88F869BDBE589BBD524C6BBD3C90513DF452B13DE4147F3D1C351EBE9BE30FBE749EA53C1A69E23C2423D0BD805EEB3CD41403BE947268BE6F9D89BE4E70083EFFE29F3DFBD4FCBD19E314BE120E31BECC69993D42E05B3EC4DA98BC1A583EBC538D21BED4F220BD10F66ABCA8210FBD08D00C3E02E5803E4327333D860BC9BEE08D9FBD6593193E4721533E6C5010BE8CC745BE839A31BD73C8B83D47485E3E0F09ACBDDF144FBE9EB906BE838ACCBD2E47E1BAF127BCBE86C79EBE632FD3BEF5AF04BDBABF13BEDD6FAABD9FEE84BDB82288BE5FE871BD558BD1BD38ED143DB76A0C3EC28719BD4222BFBDBE15E23B97DAA53C886E6B3ED4BF13BCD3482FBE28BC38BE12CCBD3C3CBC1DBE441856BCCEFD07BDCF84AEBDAC3F63BE781781BEC1283DBEE34B66BDE799C33DCE58D4BD33DB2DBE9B2321BE3DD9EE3A3F46C83BF293C4BBD10E563E6DDD823D145C293E48A28D3E667D6BBD6536B23D9346173E3DBA0B3E23481CBCCBE2023ED9CF90BCE2879FBD57FA05BDAC441BBE92AF0B3E1946F63C986292BD772321BE3E8FA3BD9A23C73CD69BD73B1F000EBE3750E83D1724733E245989BDB45002BE1279C6BCBBE45E3EB34A763EB6AE69BE09740CBC23E348BEC7E4B6BD39B736BE99E84BBE75729EBE86B3E2BDC66AF4BD05C42A3D2B1A3C3CE587B9BD855C25BE867E25BE79C1BFBDD544CF3DE8186C3E2310AB3EAC8922BE6946E5BCD5EE1B3EBBD4073D0EF7503E7859DC3D9C38023E848AD83C4EF93DBE395C5CBE87121BBE290847BE413CD0BD2ADA88BDDBF339BEDDDF66BEABDE7EBD706557BE3971B2BD7AD806BECAF0F3BD5F2B19BEFEADCC3DD0D4F43D5CEC693EBB2EEABCFF24353D404C213E6C2DBC3D00E7683EABA5B2BCF749443E3AEB963D9566483DDC9920BD91BA40BD00696ABE550814BDABAE293D4CF99EBDE7B185BE7CC7BABDB91331BE3B1074BED5AED53D6075FFBC29EC82BB86554CBDFFBA0B3EE0735E3E567D4DBDD1F02BBD4DEB81BD8F218DBDD1EF0B3C0574793E2F3A0D3EEBBD36BC0B5C12BECB60E43DCFC7953D24CAB3BD7D2D493D1B8D3FBDF10940BEFC632ABEE31050BDE294ADBD8DC2DB3C2A23B1BD8CF43EBE6837F13B6FA70BBE1FEA76BEBD138DBE8C1CD9BDA92957BA3D8D9EBDA79DE63DDAE7C83D874622BD2221033EDE3EB33D97748A3E7A8C4F3E6480543EF404233DDCDC18BE04A8BFBD73E1DCBD686247BE6DA68ABE507020BED215DABC4CB8C63D965A0EBC615277BCD2F237BE1C0F70BD6C03A2BD88F961BE8559DC3D834402BF74AC9EBE73D611BED807643C624808BD84907ABDFB7269BE33F52CBE4765F0BD375ABABDF006853DAC4671BECC3689BCAC60EF3C67B5563E2C732FBE22B4A03EA768633ED51973BE08DE2EBE8C3A5FBEE0414B3E0BFB2C3E4E2D7C3D155B2FBDC06989BE92CC873DA175953ED2CC193D9B592B3E63CFA5BE578A84BE5AB794BD9E1348BE761B913D91679D3C487595BD8A6D61BD904BD8BC468040BE2A40BE3D9ED641BCE9AC3CBE3DE8F8BC8C04A6BDD44BF23DB9130B3DF53B1BBE6539FFBD1041B83E95929B3EE79C233E9679F03D8B03323E29745E3E46B5C9BC907D54BDD0ABA4BC50FFD93DFA76ECBD0EF0D13D2E1682BD3D9BEEBD0DBC08BE07EB94BD581CA03DAB05A13C2E7CD93DC054A93D0B131E3E9B1197BE9DBA44BE50AE95BD1FC5433D17AD4E3E47D262BE4E5592BE52C9C9BE7D3104BE2B598CBD2B2E823ED38FC73D55966FBDDA9F0CBEE98381BEEADA873EDBE5393DEAF87E3D23DD373E1077333E364EB53DC058BD3CC8BD9DBDF9EE9F3DCFB93EBD008CACBD5A5784BD4F8800BEF622ACBD40B8683C7C0E113DE49728BEDA807ABE3B23BDBEC7D538BEF3BB0E3E85C1D23D3DBFCCBD7C171FBEBF8ECDBEB114A43D6750EE3DDEFC473D0CE2533E907ED63D730F98BB812A773B285A41BE4277BB3D82A3B5BD093E3EBDA49D25BED24E1DBDAA3347BD138854BD74FC863D0FCCB33C7CA302BE344946BEAD488ABE5E4CC13DAAC3683ED84CC33D0BCD26BD21A373BE3F6B0FBE693A243DF8F15B3EE82F8E3D2EFC9B3EDF6B8ABD962377BD446A63BC94A7643E63A9F63DCD0380BDCA319FBD8BD18F3BBD4287BD02089ABE1A100EBE1C3662BE5F3225BE72598BBED16491BEB9CE5CBE3D0A97BDCEA648BE00E58BBE316886BE56C43EBEBEDB663E2484AD3C4AEC543A1E45373C8CCE863D53F909BD147653BE148B52BE047154BE4276A2BCC8E04E3D0E8A9A3BAA144EBDBEE2713EA0F383BD03035B3D62BE893EE5F6B03EF964513E6DBDD4BE210D7CBE0BFFD5BD148737BDC2A0DC3CB650B23D77CC65BE067E6ABE9D43D53B081794BCF538AC3E213B533DB3A3D1BD8CD66CBDFE1924BE93E81EBC903F56BEBCECB23DAC43CABD53CF0BBEE54950BD1A4F23BE6166A63D28F26F3D1AAF67BD24B23DBC0EBC00BE175D1D3EA7EC10BDEC80A7BC83A929BEC573A9BE9B9865BE290E953C9F6369BEBC018E3D988CFF3DCB5AFE3DAC9E4DBD551DBE3A68C0C73DCBE1853E67F62D3D1CEDBBBD3536883E4054453C3107823DF95D953E6BD856BE28DBA5BDF3181BBED4BB8A3C8907D73C1D5093BE055E1FBEF052EDBD3EEC29BED11547BD2F50BBBDE951AFBE80EEA8BDC3E915BE99BF7C3DA89283BDABB1D73D2984053DAE7624BDDA6A2BBDC0ED15BEBD773E3DBC3044BE2612C7BD993EDBBCBFB60EBC84D83BBEDA10053D87DA603D3575673D7253B93D872A95BDB6FF263DF807913CC1C5BD3C18ECAE3D6810963D4D4F973DB587493EEF11083E981CA6BD7183BCBD1C8DADBC8208853D2960883C6EB84CBEA0B6C8BEC1A35A3D5CE1173EAF8082BCD2C73FBD362D40BE32D81EBD27C4C4BD693477BEDEFDE1BD0EA3FFBD1BD746BED83358BEB801B7BD1DB9E5BDEF834ABEE3B5E9BD631A74BD852DCA3D52B047BBD63FC23D9F668DBE84708DBE9DF1DB3DABE92A3E0B081FBE9AC8CDBD691567BDB1752DBE0085E23DD0C303BE1C1E69BE7C3CC5BD78BDD0BDD1F4D1BD2B6FBABDA650CABDC5A801BEF7A78FBDCF8709BD91DA50BEADA50EBE6F2A66BEC420ABBD7274C33C7BBA243EF8A821BEB81372BE68133FBEC7DEA93DC4E1FC3B077742BEB2DC16BD389211BEAAEB3BBDA043173DC9DF90BE5C7D29BE7EF63DBE54916BBEAB8E36BDC72954BE191E7FBDCBC4D9BCA3F6B9BDB3EC90BC04E95ABE81072EBE36EA4EBD8674243E637AD6BD9DBC3CBE596EA7BD969FC53CD9E9A13E1DECA8BC6DCB17BD573C82BCA7DC8E3D81E9D03E46D1443EC5BA1BBEB2F8A4BD057E423EABDB823ED9A8B93B863982BD20A0C0BCA2BDE93CDF26DDBD038AA0BDB9E7E23B5476F5BC4C80503E0A01D33DE75F7B3D3CEBD8BDCE149D3D2DE9883A37D2443E39526F3D9E2D56BEACC9E2BD484E1B3E581C18BDC2E75DBD4B8366BD3A3B2D3E9008313EE12D93BD0A8C1EBE7245C73DE9ADB0BD1AA41A3D45B6F8BD97A334BECF5E19BDD12BF8BD0B4D85BDBBEF3DBCDC723EBE5DC5333E8688693E496DE63D0603AB3D6CD0F6BDD5F32F3EDEA35A3E023F603DCF55833EF9E538BDA2209DBD7C03F1BC2508C33E8A3EF03D9ABB813C139437BE4B2290BC790ED73DE950E73BB04A75BDA59B92BB52CB0FBEB5CB88BDBB2F47BE644F44BD11B9663C568C59BD1F94C73D5FBA3A3ECA758B3E36D5173ECB2FDFBDD81FC9BB603F6E3C0715EF3C00AC2DBD9E3315BE9BBC87BE02734FBEC2656DBE220E443E06B9083E23B31BBE869C61BEE25296BE84D993BDE76E56BD4350903D6E1A2B3E39EF263E76B639BDAF5629BE3C3521BE3B9BB0BDD7960FBC79C185BD4DD7EFBD760394BE3BC311BEA73B8FBDB44E96BDCE99403D65C4903D91C03E3CA58BC83AC02F893E935BD43EBBECA93E1D76593DEFE9BABD887DBABD71EBA4BD56D19EBD9ED51BBE2A388EBDFA8D23BE171B903C5E6B893CB883D5BDCB6A1ABE00AD0ABED81461BC0E2BDFBCDAF7F83DC8FE4ABEF05BD5BC8605D23CFDCD71BDA0FF663BD24EC1BD5AD505BE84A471BEA7E0DCBDC30D89BE09478FBDF95BDE3C061E963E8B20783E0667E83D9FC6C23D7C4F94BBCB808D3D333CF23C18F506BD6459ABBDD61620BD4B20143D663F76BD50FDAF3D417E8DBDAFC01A3D16ABE73DD12C95BB009D54BD011187BDAED71DBD640A92BC9BCD5DBE488A87BE75CF6FBEE1610DBDE778C83D6B4D3B3EE918243E42337B3E8042333DF6174A3E32D9963D4795653E93DC75BD40DB8BBCC13FC6BD099CC3BD2811C53B369D00BEEB39C63DCA68243E3382C2BDFEA787BE2FE350BEBB75613C1E461C3DF1E2BFBD2A0721BECA3092BDCE3FDBBDDCE708BD071F183DF8DDB8BD4890ACBD71DE00BECAC61ABE1A6EE43BAF65553DDAD6AA3C103EE63DE352D4BD602C193DD34E873D8AC0DE3C1C31623C052CE3BDC2FD6CBE2DC23B3DE388A83DFBDA66BEDB00D2BD9923DFBD0266C8BDAA82FBBCA5A5413E22DE353DC18B9ABC4F880ABE33402FBE7C04393E5556DD3D27CE82BC00600BBE681D5FBE75DAF2BD551FB8BD481403BE1FD175BD33A4BEBDBBD428BEAC7F8DBD54FD663D4F80A83DBAE701BEEAFC9D3DA73AA73E1B09233E9DAA25BDC0E200BEBD39863EBFF4A33E2773EF3D03BE973E8CD4D23E45D382BD693EC53D4EC2D0BD8F1094BD20AF913C0EFBF9BDAAF58C3DC7FBA4BE8A11E5BE4F4359BEA08133BD378152BE64314EBEC8C567BE5A6AA6BE90D73DBD06FA1CBE40E035BEF04BB6BD03FFA6BED6EED83DE21A963EC7D3BC3D4402DCBD4F35EFBD701CE53D547D243E32AB433E03D38ABC9212BABDB6060E3C8546B4BD2B6A623ED4D7A23EF0F30DBE54AF773D979C243C926A663DF903653EAD9F273DBA4984BB1BE3493A067A8F3E1273F43C974C0BBDB16F52BEBB315DBE7CCED2BE773E4ABE4C965DBE030B06BE25F463BE4E6E81BE655389BDEEEF03BE3AC8E53C4610893D0CB6A9BC7A7EAFBD4E212A3E16000B3EC21E553D0DBF1ABEC5CE33BE0B21513E38C763BDB4E41EBEB55181BE90B6363DD650293E83969F3E13843A3CA541763DA4741BBE4E02E03CFC2E3DBD5376CBBD3D33B93D15B5FABD35DD66BD4B46CABD5779E6BC97CCC6BD5391EBBB083638BEC51C83BD4E87DEBC54B58ABE3F7A38BE9217BEBE4EF57B3C8F0361BEBABF93BC78651DBE5E812ABE5BBF03BEF28D8ABE040F28BD5F64223EF263E53D6BF4A43D348249BEB0FFB5BEAEC10B3E515E5F3EB055F73CB1933ABC54F168BE763B81BC48422D3EE7611D3E8DE5803D1A3420BE9217503C659D0F3DB779D3BC43BAC5BCBC9B39BCACF4253D5EABFF3B2ED4D93DE5E22ABE13DDAFBE6DC5A2BD082688BD2F6BC1BB10232ABE5EE0BEBEBF845FBE4E07FA3D05AB923DA0FFEEBD766885BEF245E4BD9CE2AB3E3805C33DDE38BE3D0F6FB2BA87C93C3DCE72DE3D26CF8CBDD111923D68C31F3D947A83BC41B620BD01981EBE29A4FF3DB79A563ECE4309BCB239853C63F4073E221F893D9B1A12BECA10453D15DD223EDF572B3E5920F1BD077510BE87748DBDCC82FC3D8F7ACDBD085007BD771C92BD564951BD2D5F5CBE4B7D21BE63C8EF3D3BB72939A9DB163EED9E6CBC1BC79D3D170206BC23D5C2BD85ECABBCE2FBFC3D2B5C053E80569E3DDC3BB63D5DAA5C3D029D4A3D1C3B53BDA0AB243D0E98763D3C1EA43D60BF4C3E71FC3C3E0CA381BD537178BCE0B7CA3D791C4F3EB2EAC2BD420124BEB12C6CBEA97A8BBDB3D69BBD16D99B3DDEF8323DE37276BD88295DBE881A1DBEAB354B3D37CE613C34D00DBECD6C003E4860BB3DBD78ADBD387399BD788FBE3C14E4923EF77D943EDAD5C9BD2320CBBD4D4B453EC77E7CBCA5E78C3DF13F36BEFB51653C9EFC18BCC0DACEBE651CBABE3302C93C52A6EFBDAC9049BE6E9E78BE970197BE4185C3BD72FD98BEFB2E56BED23084BD9189BFBD35C405BE93189EBD1F1C7EBC1E6208BE54F5CD3D86A33CBE833AEF3D3B380E3E2F2906BE6479AA3CEE8A433CACC3883CD27CFCBD588731BE25D4DA3DCC3D53BED94127BB474DA4BD7F6582BC63405F3EF7A84ABE43602BBEC62383BD043502BE355C073ED23619BE4FE7D8BDC24586BDCBC5C43DFA42E13E8E72ECBDD5F043BECA7B29BE522C05BE81C372BD282352BE27D299BE39E00FBE7EDF523CF69A253EA165673DE6505DBE3C1F12BECB4F46BD0315853D5B77CBBC7D9756BEC1F807BE7539553EECA9983E7CABCABE6F6CA13A337C243EFCCB183E781230BE768E65BEC5B0FABD8EF6FB3C22FBAEBD8FE875BE712D54BE163DE7BD164D9FBD2884FBBE7C7A85BEE876C03DAF4877BD281330BE063CC2BDCD52713E40F0F43CE2F508BE7A2DEFBD2073823D418D463EE946953C8E6AE6BDFD6FB8BD86C074BB6A0C2ABD70BCE23CA95089BDF455DDBD0A16953DB7DDC439ECBE0C3E5542A3BD94B54D3DFBB498BDA2A0143D98C5893DF0BCA03CDAB2E6BB621D21BBEE18163E9D96B8BDFEF18CBC5ADE42BBE695263DBB76083E044045BEE5C01D3D659A9B3DA77F1FBDB38B503EBB965FBDE2FB07BE64DC2EBEF726AA3D543E133D5F1E073EE0EF673D017C17BED1A752BD5B12CC3C3681C23D1EA4B33D81EF3CBE94A8A7BE6E7730BE59B87F3EFFFAE33D9662FABD188288BEA4CD63BDC546AD3E520030BC3FCA0ABE392FBFBC036522BE971A083EBE972ABE5E16163DB101BA3ED94FADBBEEFEB6BD8ADB2BBE06B8D43E0A10AC3D31E8B3BB8FE830BEACF635BEEA3482BE497244BEAD125CBEA5CDF83C89279DBE910517BEF51527BEEBA5B9BCC8B922BEAFA2B0BE48CA873C4ECC823E68D1D63E600235BE0BDD26BE720E193E71BC4E3D3FC22D3D3D16A7BEA73CA2BCB7CDB03D68D4383CD6C431BDCBA0D53CF4E5BC3D2AD00ABC3894BBBCB006E0BDCC8E433DA3CBB03DA521B2BDA9F4D3BDEDD272BE7325793C80D69B3EE1ED073D22C42BBE20F3DC3D7153123E1121223E9113D0BDCD1E673E9F569C3D5250113D166213BC88C67A3E2386323D19E3073E546EEEBDF65A403DBDA400BE0C9605BEE199843E99C2153EACDE643CED2D39BE603AFBBD6AE45D3E4590053EA0E67DBEC6D39EBD1CAFD83D91D1B03E6FF51B3EB3B638BED53A9C3D97CB25BDEB94A13E6E4A71BE5B46CABD3B2DAABC25C0033EFF6EFF3B480F64BD1BAD26BD4D47943CDDB39B3DB6F017BD8D6A46BE9F408CBE2938703D71A0A23BC00DC7BDD06449BE82A99DBD18E7623D330E15BDB14183BE8724123E59D28B3D25C00CBD4BF85CBE15464DBE637B323E038221BCBC3F31BEF2F6813C978D0EBDD718963D92CC173E0007673EEA2AC03DC5B9CB3C4A94D63CD66E403DAEC1343C686CE8BD653A053E4C01F23CE65DA73DD57D34BE9BDB82BE7D12CD3D4E26E7BD5D3569BE135983BE0D044A3E011E983E8F7B0ABEC55B2EBE965B3DBE9FA7723DCC74A93D826EFABDB90BF03DB00E7A3EBDD7AD3E7BB824BCE6AB52BE030DE1BD160283BC46BEB0BD391860BE3AE69CBAA374C6BD087692BED74681BE751297BEC68E4BBEA31B7DBEB2ED84BEAA03D9BDED711BBEEED807BE6CFDB1BE66D8B4BE84B0DCBC520639BD3EFB093EB52E863DAC48F03DFA943C3E9F6E513ED4541FBE57640DBEC2A83DBD9D8B823D973D4A3D372939BEE90E78BD43906ABE5B88E3BD4B6D8ABE9489AABDD8D436BEA6DB8CBE83EB31BE41B36BBD54E282BECC5CB0BE0308AABE769707BE43591ABE9ED73BBDE39738BE9D26A0BCF10DBE3D80729E3CA2E657BE3045BB3C454D09BD183D0FBEF5798EBD7A8333BE5316043E05EBC23DD24E2DBB318E0EBE2C53C7BDF5C4183E3DC39F3D2D6282BD30CA00BD033D4DBEA2FB7E3D4D7C1DBEE9550F3EB48E123D091891BE8CD7A03D6364063DAADB993C4195FCBD0F2898BD2DA62A3EDBA3353E6D131A3E515637BEA930963DAD73113E687B23BC25B65ABE1E9948BD08A9413E357A03BAE3AC78BEBF2115BE2F5C08BDDEAED83D3685A1BE91A31ABE1001533BC8A5173EBD8265BE1E8D81BD9BB959BE784B2E3D92E4BA3D15422CBE50EAE7BBBBE799BED35D72BE5E5B41BE6F137DBD807D853D616E9FBE9F332BBE637265BE2B89C0BD636BC1BD47FC533E3F5C083FF1CDD23DB5220EBCA7E0633E7D59C53E0C7F813DA9F53F3D6E4F75BE3AA3183E8886843D7A843D3E13A4B33DCB028DBC28BED9BDC34E153E70F5933E6CF9DF3D24A2DEBCBC2AACBCF97188BD80EA6E3E39FC1A3E02E440BE548C8EBCB4EBD83DF7438ABE6734A5BD6B34D83D3A9C36BDB28185BE1DCE3ABED7C1DF3DBC8C25BE9064353DA573CF3D2021C43D84234BBC31FCE2BD7B4D7ABDB88E9B3CF484C4BD3D74BEBEBE18F73D5C5F213EAB983E3E09D753BE5F9B4CBE8C7B4F3E051DDB3D90E314BE3A3B8ABE909D3BBE08B29BBDBD88D3BDBCC599BE58A279BE61871DBEF9B15CBE57961E3C18B3433DACD11CBC25F617BEA09D32BEDEC651BDBEF5EA3CD00F1BBCEEFB33BE9A43B8BD6DB2CBBDBD98A4BC022A83BDA8C65DBBB11043BE4803F13BC703553DA174403E99A3C03E0C2E063EB9236C3E72918C3E6A10443EA9F19CBDFEFEA8BC82E9D23DE177DBBB9A7BDEBCCC0C933E8A0F16BD9D03663E2BC23A3EE8B823BE8B19863DEC42D6BD16843EBE4F8B95BDA95A2FBDA4A0AB3D05AEA5BEB982C53DB18A05BE60EF2E3DA7CC10BECCAB60BDC0F188BD8BA232BD0A243CBCB0BCE0BDE496A7BCE1FF9CBA6011CABC510299BDC6ACA03E18C5D2BC771B313E89232D3E89325F3D7F4A6F3E8A84523D1A3DA7BDD78CA1BB8CCBD5BD066FBABD3B8405BE2233CA3C1113BE3DB29DB7BD7D8B5EBEC9B5F2BD2539AB3DE30414BE0E6A99BE077071BD011C543E390E01BC6A521E3E8C11093C5C1D903DAD73DBBD269C47BD3C5F85BC0F31EB3D54F5403D0BB4B2BDBB157DBEE705A1BE73E959BE59D388BC04C4D5BE6102AABE000DF2BE9200E1BE689C94BEF228B0BEB83DBCBEC965A5BE455DD2BD250BF13DF6344BBE976AB9BD882269BCEA90A6BDDD6311BDEF25C3BD4B7166BD002AB13D250810BE4921D4BDD15F1B3E3E18263E6037D3BDA033B0BDE9054BBED34DCABC05F386BDE5354D3D730CD33DD2371F3EB83B43BE1FD2D3BDFCA1163E9CFACA3DF551D53C224074BE7F72B4BCF76F8EBE8A571ABE896F273ED504B93D2618613D799959BE1ACC333D8D6C5F3E5BDF0F3E6015403B2A59D8BDBC4B043EF280343C12EB753E3025AABE7163B8BD51B115BE1E305FBEAB8D963CA28ACCBD8396BBBEEDA8D5BE4854EEBD9042ABBC5E4EF33DEDB4333EA642203DC11C39BE0BBCC63B613881BD8F8CF23DB672D33E1F70DFBD3EDBD23D0CEF21BEBC69113E139A983E39B2B83CA50F1CBEE6F2A0BB9943053ED5DFE63EE8F7933DA97F05BE3D8109BE5A6B633BA943543E6DF6153CE013D03D089491BCA685D2BDB55387BD8B54B1BD85F9F93DF992453E1317D4BCF9D096BC49B734BEA11BACBDA854F1BC233C47BE1122FDBD4DC8B9BEEFCFEABDA35BD1BD1909BEBD8F2B193E003A1CBE235668BEF72516BEF11D19BE5D7ACC3DF07C953C0799703ED436DD3D8C760CBDAE7455BD57928DBD00FD0A3E87AB283E827646BE48A3F13D7EDDB3BDC97E3F3DEE711EBEDD9BF7BD7EEAA13CD49C28BE6920033DB48A92BEA40983BE62CFA63C560FEBBD7BD253BD354955BECED34CBD8F3789BD303B86BEBB93243D650F37BEBA03C4BD81E9C6BD37CA84BD2E01503DB09CA53DADA110BE7A3E17BE0A3DD93D47EBEDBDAFC3C2BD8E868ABEA8D0EFBC7D26303E59F3B6BDE7F3EEBDDE7116BE6A177DBCBADABE3EA34BD9BD1CBE95BDB2CD5DBC0547C33C5E8F0E3E4361B63D3B7B57BBE3999EBE49B74EBEE25601BE7366EA3D518CF23CFC355ABD660C8EBEA56D48BDF925B4BD1C9FD7BDDBDF95BD81A556BEC0A219BE49CD3F3CA13207BEA9BB0FBEDFF20FBEFE39ED3D11B1F8BCF4B138BE7F1FD1BDFFA3833DB6323E3E324950BE13FD63BE8CD9B4BE612535BED0117A3E44E8C6BD5AED5BBCFAF255BDF18481BD3D41953EE4F61BBD681A233E3A402A3CDB1A903D222FA43E7000D13D16DA943E0A8E153EA81A233EC3F2BB3E1898403E192E903DE1B8C73D4C70ACBD8ECF913CD897C23D090C64BDBD78BA3DD4BD083D9E6B333D1B4D43BD7A0B5E3EED7F7BBC3E4513BE4F33993C4789F83DD450323D176B84BB8C7180BBB6F93FBED58A9C3D244F5FBE3616FFBD9B71333EDD1A38BE138105BD95B6A5BEC14959BE38322ABE0707863B4291783D8528A03DDE0717BD54A067BC8216DDBD6B64DC3D19F7193E91BE22BEA633C4BDDB7E8FBD690548BDD81D02BE722CCA3CA8C6DE3C5D7EF7BCADA757BEDBB0D83C14CB093E45C4EC3DD81547BD48CF183DDD25893E3541D03DEC1C1E3EA98AAA3E6A269C3CDF948DBD5DD2B6BD579C0DBE54AC4BBDDFBD8A3D4D531ABEFA5AA7BBE4E4813C8A5134BD4864D43D92E96CBE7FF3C7BDB71D98BD9EB7723D9D39383E2652A7BC9C7E553D65049D3D80069BBDD442FB3DCF5B3C3D82C2E53D9CA5283EE2764EBBF653AFBD478E2FBE61E639BEC2C14CBED2A5E1BCA01AD6BD7E2F21BEEA79A0BD80005CBD9F38903C2A6A38BDF6B9D0BC2C6F7BBD8C6DAE3CAC7E863D5C2103BE8B2F9E3D3D6E293E19F3143D5AAF6BBEF152113E9AAC693EC22DA33E2D903FBECA41C8BE89C798B9A3104DBD4929EBBD89F7F8BD49E5FD3D01E59D3B630622BD96E32EBDAA3A903DC17633BCB53C6F3D02F2C5BC951EB33D412FEE3C03C8BF3D09FBA6BD9446C63CADB15BBD600891BDFF2F73BD428C77BE682F0DBEADE581BEE293D4BD8462B93D082CE0BBD5FD3FBE5C3262BE41FEBBBDFCE06EBB910D4DBEE32D04BEFDDBC1BDBDB5273BEA191D3CCB04493D031E853E407E003DCFA08ABDCD2A6BBD6279423E375C513C9F3509BED8F34DBE8995E1BDE95623BE0E144DBDA1817DBEDA3327BEDD3E723DC73844BDC53A9FBC06732DBE417AB93BB1ED9ABD63252CBE6480B4BDFD072ABE7BE4E1BD6E291BBD20422C3E27FF583E9A1F6D3D58650EBD43A7D2BD22D7DA3D65FB3F3D490744BD97B843BE9E5DF0BD0FF343BEF93305BEEB4325BE87688CBE1776E9BDB5B716BBC5C809BDC8832CBC025D25BE78E609BD5D9E493C5680023D0999E73D985D98BD8D2510BDACC6E2BCCE040C3EEBA182BBB3AFF5BDEAD14E3B1D174B3D5D3C0CBD307983BD5AFCCBBDA63DA2BD927DCCBD3699BABCFA8D063DD4519DBD599A813D02ADBDBDBA3F6FBEC01134BE5272F8BDD70FF23D345FCE380F332DBECEA012BE4942B6BDD357BFBD2462B9BD26C099BDD897A4BD8BEAC4BCF07EE7BC772E9F3CD06C433E852E513ECD64963A8877EFBDAD31713E3356623EDC62B33D7FD081BE9141A3BDAC5E75BE72FD0E3EAA5F6A3EAC7335BE045783BDF46530BE01C246BD05B900BE101E9DBD0FFB89BDAD33F9BDD2A777BD676F993D065AABBD300A24BE873CC63D5241D63CFC28EDBCFD8BE63D8B34AD3C4B72713EC5870D3E814030BE5C4D833EF0E9193E37B71DBEC315A8BB66D8D6BD95BF013DE95403BE569D833C60F9CCBDDD46273DFBE7AE3DA66781BEF56E9A3C9E1C70BBEA99A9BC53181ABD9FBCB73DA81DF6BD74F88BBDCE8E9BBDF005DA3BC05AFF3DCF5101BD55958EBED4F1B43DCD00BF3D2494533DB9C5513E98E2923E5E91283D7BA72DBE59C4B53CEFC20DBDE05C9F3D952FF63C48F3F0BD791C05BEB1F50F3D1C987E3D84F2003E675BD4BDD99473BE21FF063C0F93743D783D493ED852743CA2C252BDF1F6073C7FA9C43C83201DBEECD268BEE1D932BEEE4BB2BD96D5A7BD81CDCD3C23CC4BBE2D109FBED95E86BE7F3855BE369701BE7FFAC0BC94921FBEC0BB16BEDAB8D1BDB07ED03D6D2F233DD2FF283E339062BD225D21BDA67BE33DD8656F3DE12CCA3E6D11153D2082D03C1253063E61C6D13E5BE4F03E67F8F5BBF815DF3CC159C63CA521DBBCB37F02BE9BC3DD3B47A3C33D91F6783DC2D4B2BDB113E53C6119DFBD9B5FA53D01FD5B3C4DA41A3DD0017C3E7FA7BFB736E9ACBDEEF759BD406D7EBDB438BA3D88EA183CC6902D3D8C6924BEC16F2CBC363756BDF2AE313EAD794D3D7E13CEBD4F1D4CBC0B34493D27E51EBEAE64633D3874C93D142007BE8123D63C8032A83C79FC963D7B32FC3DE2EE26BD552BFC3DD1A5903C2348C0BDED0F303DE5681A3D5246DABDD8B770BC09A7EA3CFB969EBA32920BBE209DBDBEC2560F3E0E6E92BDB63A443E525C583E329DF3BB7029B33D5ADA0F3D4A148C3C5998683C394F283D6FA872BD079A5DBCB501CCBDF4DA09BEBD3B5BBDAACC573DAD650CBE8293F9BDF42102BE78F701BE46E0DE3D74B5B93DE81770BD249D99BD784BD5BDA505593E04CE583EE2AA8C3D231982BEC8EC24BEE43B8D3C88FD2F3DEAB7DD3D0FCF26BEF76E7FBE0E79A43A92EBBBBD6D6091BDA281CFBDF9BB59BECB4A6B3D31B8633CC1F257BAAAD606BE9BA05DBE9952DA3CA06D23BD487056BEA38AFBBDFF06D03CDC4D1B3D5EB1F03D3FB3F5BD53252EBED27CC7BDC7FD503E4FEC413E2C432ABD8FCE3F3DC46560BD9E0D9ABDA009A3BDFD6CDEBD909D05BEBA419CBC5A7B55BEE40A01BECC4154BD473D09BE3B1083BEC6FC41BDFA881E3D8DA125BE8FED41BE146673BE470DC03D5384013D6F85303EA9EB1A3ECEB9883D3B2F8E3C25707EBE0B8F8D3DCED9A93D16C3153EBD00183E65B92FBE825EC1BD6ACF4D3B9EDC403D2974183D6C7BB6BDB316063D4B7C31BE96F8FFBD2FE7F53D3D6B13BCA2B2BD3B54A853BEAEA8903DFE5A96BB5F7CACBDBE23443D1F70593C39F0283D69119FBD85C4353D5AE29D3DD48681BBD964373C38626C3E3B5F103D440B12BE469CC9BB8277E23D03A2233E5F37B3BDE4024BBE6F414BBD725EC5BAE6791DBD34E820BDA964903C974A553B4F103FBEA7CD843E5662F63B936073BE28BC53BEAEA2493D9754E93D240819BEAE0193BEC0463DBEF08ED7BC0A5266BE54420EBE722A53BEB4600EBE8B64A3BD184342BEB5DF09BED60B15BEA16967BDDEA216BEF760443DCF7E6E3DACABACBC29A0833C7E7A3E3ED2395C3D27408A3C6362DCBD06C51B3B99472ABE2506E3BC806493BDBDC315BE38B24BBEF291213C6649FFBC52D4ACBD474269BD5523F93C10E116BE5D5C7ABC59F9313DA1FBCABD00A9893D2B730CBEB547A0BD2375793D04F0F23C5A95A53D49D3603EAA50FF3B1FF534BE09061BBC9B365BBC0A0F6EBD9E7A5FBEAA9B35BD8E1B0BBDAD7135BE8940883B71EE81BDDB2FC33D220C74BD14862FBD93EA03BD548B8FBC7C1E5F3C2E6F423DE35B37BD0D9609BE9D0F2FBD43D207BDB87128BD6157F03CE591763E83654EBE6E7184BBF0D51D3E639E36BEAA1340BB112B75BC8F66463E39960E3D7F2186BD3625563DD3E9803EEF941F3E0620E4BD3A518DBDD1BF03BEAAAB8ABD89F362BEEE5998BDBF11FA3C37F24FBE4AEF63BEB79CECBDF1B9DFBD7136373E9116463E01E9963D3372663E9F5A84BDE767D03CB014A63DEE6D843ECC870A3EC38202BC5799483C0678CF3D0C39703E3B3FC7BDDADD86BE409594BD58737C3D205CC3BD2CFA40BE589EEDBDC1661BBEC2C49DBD5962B7BD9593943C24DCC8BCFEB3CEBD44AD56BE8011BF3D6E421FBD5A6754BE402A48BE618734BE332AF0BD06ED253EE0AB37BEF82563BE57666A3DEEBE92BDE3DBD43B1503513E9191103F6F524C3E878807BE4F94943E29EE893E57A9A03E4FB4EE3DC0FBD43D08BDA13D793A853E785E253EB5B348BDA1DFBBBD232767BD3C77FEBD296D86BEC7C50FBE0C2C083DD3797ABD0390213CBF2B723E88624BBEB157893DC977033DDCFCA53EA70D1A3EF46890BC07754C3E16E333BE1469203E17E1EDBDBE0F2FBEAC295F3B0964E8BDD32A013DEA6C08BEF5DD56BE9A9E053CB30A96BC559E14BDABC416BE21B365BEC30AF93DD86CC03D1EBF1B3D76A293BDF4139BBEC121C03D4368043EA31CF4BD2EF150BE8D35CDBD3250AA3D6F8A95BE8734A6BEE0E30CBE698C9E3DC672683DDC7A453D70F62ABEBF592CBEB9A883BE7642B43C58B3B83D9697C63D8107B93D0A5B04BE15B18A3BDD1614BD2A7F8A3C3B1D2FBE151803BE0B57213B690303BE24E687BEFE0A69BEFC724EBD6B58473DA6A148BD73D2083E196AA73D877893BDD3D0BD3D2DDD583D58CED13DE9ED313C8CF3EFBD8EE2513C35EF093E2474EC3D3DC43ABEF54199BDEAFC133EB76A443DE9E3B3BDD61A25BEF00F11BD99BAE03B22B051BE5E2FADBD7E61C1BC2080BFBD68D18DBD05280FBE7210D6BD284AEE3DD423AD3DC256733C741408BEB78428BD09B7093EC80DD93CA9252B3C8594F93D7248F93D03AE8ABDFC53463DE463EA3DDBCE963D16AD493D563AAABD397FEABD56F450BCBAF7F9BDBE55B4BD43E3293EF72801BE47201D3ECC91D0BD41E091BEE4F049BE3A9E143E5E92EFBD405522BE3F7A71BE3B4612BECDD5A83D422DCB3B12E9FD3C923056BEE3BA47BE9A6315BD758F21BE2C414ABED6AAA4BE430373BE130DFA3CF8DF9FBE4A2AAABE1561B6BE85E0953DAFCE503EA3272CBE74817DBE5AC45DBE63F0943ED51FCC3E1EFAF8BD8A14333DF4B1A73E1A33B93E181C81BEA9DBDA3D1A2AE0BCAC7149BEE21C4EBE0A4882BE442AC73DDAAF6C3E2C97933D04BAFD3D5CA1F33D3343213E770BF73CB5A4B4BDDADA2E3ECC7E223E938601BEBCDC54BE28644DBDFE49D43D0E3110BED74F153EE3BCA1BDAD26BEBD60D3FDBC36E8B1BDA49A593EDB0F763D77EAA23D144C46BDD59FECBCF4111EBD9585CABC9D02ECBDDE42233DBED902BDAEF773BEAFA40DBDF416C7BD26E0883D48248BBC872DCE3D89F2D6BD3B250EBE8B8411BEF9BB8DBEF8A3A03E46592BBD8EAE5ABE6ABA28BD11E304BE118E76BD8D14453D0B44B63DB7CDDA3DB9856E3EE72F27BEC3166CBE9F1A1EBE619D9CBD614399BBB001623D893C99BDDE5CCDBC91472D3E0919AB3D308D363E3AF65B3D8503F83C660E133E1C4BCB3D4956873E1BA1093D35470A3C64568E3E04145E3E5E0F9ABD45F2093E4CC9A23DF86C573ED24C613E3DF8C8BDFE3A81BDF4BB22BC810C39BEB89548BEBC243CBE5770E0BD42ED9B3C0DF6113EEF432A3E678E13BD4A94D1BD494B73BD3EBD35BDD202BD3B8A7600BDBC190EBEBE4656BEEF468BBE141D3ABECD06C5BD2B332A3D5D778E394D09B9BDB9C6B6BDC2A6AD3DE402B6BC983EC6BDFD3AF03B47C52F3D349210BED38A37BED7E941BE4DFFA0BD9373F83D1585B13CC3E79CBDDE478FBE3658C5BD8BC7793EE2303B3E45CE99BCF52280BE47CD6EBC54BFF03DE1DB96BE800293BC3C8B41BD7A1928BE447B88BD4786953D7F863EBDF834DFBD921C823BEFA7AE3DE37E2C3D0A21403E2FBF4CBE611118BE3851C9BC94C857BED644B63D5C6A5F3D21B5E3BD53EB343EF8889ABD49E1453DB4DE5BBEEA2BCABDCBD13D3E01033DBEC935A9BDD1ABDABCCBCFDCBDE4FBCEBD973E593D26C721BE24ED82BDFCF4C93D49F3F43CD922C73A4A75853E1326663DCB1B6EBEBA719E3B25FF32BE9FF6493E326A8B3D9A69853A0B547F3DF34AFDBD30A113BE24B018BED76A3CBE18B6153ED5653FBE5E8F32BE0761873BE8B70EBE8C335EBD005DBB3CC2C65FBD8F89343C793BFFBD28BF25BD8B165A3E2D49C93D60F0AB3DCD0F80BD43A7D7BDD9FD3A3A14E5943E5969BF3DCFFF3CBD1146AC3C5EC0A33D3B8DBF3E092B563D32642CBE2481A73DA9EFE83DCDA41C3E71DB703E93933F3E6C900C3E433DEDBD32ED01BE54EF5DBE174A27BE7A806ABE13CF43BE763DC8BD92152ABD93E652BD7B18EEBC6706CABD7A88B9BD0EBF4ABEC79687BDB30AECBD98C1A73DE1D81A3D26D579BE91F51FBEB4D411BD0FEF87BE4819D5BC2B2F083D83CF15BE11B01F3D6EDDA2BE45B9103E79CD5E3E8E7DBFBCDF794ABE1A0705BE6A76303E67E9313EDFA8DABC17B574BDA8711A3E6D5A353EC84B67BD132847BE6C8BE6BD1DE7D03D2057833DBE71B73C185647BDF49F89BDDF3F24BE3802993E3E73C03DD78754BD640A52BE0D0B8ABDA884C03E3986913D7C50B8BDF0B8B5BD1638E13DDB469F3E781B23BD19F430BE91A9B4BD2647A83DC24A353EFD4292BC9AFD85BE8B5E26BD39310E3E5AE680BD118B6FBE12322BBE201D86BD4CADA9BD991D533C1E68FB3CA72738BE48007F3CC5364D3D79C4DDBDC5B73ABEAB3C4ABD0DA4F43DBBE27ABE3A8B35BEA7D183BE390602BE9D11E03DD76449BEDB043BBE48E5FABD2812FABDDBE443BEABA09CBEA86EBBBD76556CBD2373053C0F2CF4BD91CFA8BEF876413DF562813DBF7E513D04BA09BEE740AABDD23CF73D42D3D03DC2AE74BE28E2C8BDED4001BD3E8A9B3E488AA33D278375BEA74E36BEB22691BCF478813E91387D3A23528FBEF282ABBDA696963EAB8E723C8CABD9BDD52A73BEAF3985BCAB16B2BE9AC6D5BEF7730CBD1F1FF6BCC96A25BE370B90BEAF0317BEF6947A3DBA88EC3BDABD59BE321058BDE82E073DA1F0503D1859B6BD59BA9CBDD18712BE104B373D2E5A223D39B503BE307B9EBCD656B4BD8533053D2EA3E5BD9383613C8F363DBE591C6ABEF61EA1BE306BA2BE5829C9BD95DD443CE153B0BDB6D97FBE2B37D3BCE4BF21BE4B12273CF49A803C953F323D0DAA6BBC4FC0D33C8E950F3E1C0D32BEA2580FBC1265E4BD7BBEE83DD8F88BBD833B81BE788F86BD5419E5BD10DECFBDE19A12BEACB1F6BDF39A69BE103A77BEA19DB3BD63AB09BE34B6C23B6B8E9DBE1C545ABCB5D5053DF4A2C1BC7A25C73DF7DE51BEC03D2F3D352D123E850EBC3D62433FBEAA4E163EB4872A3E61BD063E1CB9213C75AA25BEB962BA3EE983503E3A14C33D7E3C64BB0E3116BE01BAF63B2615853D8166743DD2658C3D6BF19DBE779F7EBEF2DA6E3CD5F9073EE6EF493ECE5FDDBE431A8E3DEC6E85BDB27110BEC7F8C0BD2E12D1BDA749C2BB028DE5BAC2EC55BE3FC2C2BD7B9255BE68F2523D9E1C10BE92BD5F3C1841E9BD"> : tensor<16x8x5x5xf32>} : () -> memref<16x8x5x5xf32> - %1 = "krnl.global"() {name = "constant_1", shape = [8, 1, 5, 5], value = dense<"0x16E911BCDD9772BE234202BFF73884BD2037113EC08B17BF9B58F3BE48214ABDC7A9443FE9E4863E6BC8FBBE56CF633D6E6D823F18010E3FD621E2BEAA5D23BE0ABB0E3F4B93173F58E896BE5AF91CBFF8B01D3D9B71673E39CD5FBED052F4BE5A5A95BEAC5B23BDA1D85F3E2759FF3E82EBD83E0CDA463D5E38CFBD14C78DBEB52590BBC2F4063FB38BCE3E40751ABEE744A7BE28CD22BE4ECEB73E17CABE3E425311BFA07CC5BE44DD31BE9F82693E145EAA3ED5F5C2BEB3FC6ABEAFA887BD42906EBCFFDF913E8C07C2BCE606D63D6DDB813E1F3AB93EEBE2303F2E7AAB3EFC80D53E3C08C53E70A8A83EE9D8783E092AF0BE55909BBD5BFE13BE65BA31BE70B17CBEA30179BFB33237BF4FC809BF49E51DBF709BE5BE26C24BBE9FADAABE29BAB2BE678A15BE8A3F82BD253897BE6432AABEE8EEA7BEBD37A2BDF9C463BE431AF4BEFDC557BE94A36BBD2AAB273E9BDC253E4C90C8BE5DA0C0BC0773FC3DA4AB2D3DB285693E729EC13DA67BBE3E0EA7603E6D8137BC3D86393EA2B0A73E86C5B33E311AEE3C5F3E563E7272AE3E0CB05BBE3EF4F9BD50021CBB2B2867BE470825BECC5EB63D35E5513EBC1920BED21167BEADE50FBF88B876BD1A24D23EF85C6DBC5829F3BEF06510BFEAABECBDD781113EB6B08D3E3F7C2E3DB2393DBC0DDD1E3C52057C3E3128203F62EA2E3F79BC713EEB072ABEBDE9AABE78C843BEDD205B3DFCF8103E90423B3E104F0CBF4DB83BBFB29816BF03B9C4BE09500A3F8E37B13E9D2C81BE066DB1BE26FA57BE296F613EAFAE283FFEC4BA3E8E7A043EBE60E0BD85B0763D8F0F9B3E78AC723EB034F03EEFA6643E47A5C83D643A0F3F16945BBEA954EABEE4E858BEEC93BA3E4560F93E56BBD0BE69C0DBBE017C7DBE8C71D43E589B993E0171EABED09A9BBE5960B7BD345D8E3EDD5AEA3D177330BE250FB4BE71AD1BBEF884B23E88413E3E142D913D9365093E3C2A3DBD26EDB4BC482C07BEF8C5BB3D562A6D3EB0F2AD3EC102293E71C2C03EEEB5473EFA5DA13E2230113F57ACF1BD7AAF483E91BC073EFDBF433DD1D9083EF975E83C8E7D0EBEFC59F7BDE4454ABEDE9500BF71BB12BD4B6242BE1AE6DABE88CA91BE19EB42BE"> : tensor<8x1x5x5xf32>} : () -> memref<8x1x5x5xf32> - %2 = "krnl.global"() {name = "constant_3", shape = [1, 10], value = dense<[[-0.0448560268, 0.00779166119, 0.0681008175, 0.0299937408, -0.126409635, 0.14021875, -0.0552849025, -0.0493838154, 0.0843220502, -0.0545404144]]> : tensor<1x10xf32>} : () -> memref<1x10xf32> - %3 = "krnl.global"() {name = "constant_4", shape = [8], value = dense<[-0.161539719, -0.433835655, 0.091641359, -0.0168522168, -0.0650264397, -0.131737873, 0.0204175506, -0.121110231]> : tensor<8xf32>} : () -> memref<8xf32> - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x8x28x28xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 8 { - %6 = affine.apply #map(%arg2, %arg3) - affine.for %arg4 = 0 to 28 { - affine.for %arg5 = 0 to 28 { - %7 = affine.max #map1(%arg4) - %8 = affine.min #map2(%arg4) - %9 = affine.max #map1(%arg5) - %10 = affine.min #map2(%arg5) - %11 = arith.subi %8, %7 : index - %12 = arith.subi %10, %9 : index - %13 = arith.muli %11, %12 : index - %alloc_10 = memref.alloc(%13) : memref - %alloc_11 = memref.alloc(%13) : memref - %14 = arith.muli %11, %12 : index - affine.for %arg6 = 0 to 1 { - affine.for %arg7 = max #map1(%arg4) to min #map2(%arg4) { - affine.for %arg8 = max #map1(%arg5) to min #map2(%arg5) { - %18 = affine.apply #map3(%arg6)[%arg2] - %19 = affine.apply #map4(%arg7, %arg4) - %20 = affine.apply #map4(%arg8, %arg5) - %21 = affine.load %arg0[%arg1, %18, %19, %20] : memref<1x1x28x28xf32> - %22 = affine.load %1[%6, %arg6, %arg7, %arg8] : memref<8x1x5x5xf32> - %23 = affine.apply #map5(%arg8, %9) - %24 = affine.apply #map5(%arg7, %7) - %25 = arith.muli %12, %24 : index - %26 = arith.addi %23, %25 : index - %27 = arith.muli %14, %arg6 : index - %28 = arith.addi %26, %27 : index - memref.store %21, %alloc_10[%28] : memref - memref.store %22, %alloc_11[%28] : memref - } - } - } - %15 = "zkML.dot-product"(%alloc_10, %alloc_11) : (memref, memref) -> f32 - memref.dealloc %alloc_10 : memref - memref.dealloc %alloc_11 : memref - %16 = affine.load %3[%6] : memref<8xf32> - %17 = arith.addf %15, %16 : f32 - affine.store %17, %alloc[%arg1, %6, %arg4, %arg5] : memref<1x8x28x28xf32> - } - } - } - } - } - %alloc_1 = memref.alloc() {alignment = 16 : i64} : memref<1x8x28x28xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 8 { - affine.for %arg3 = 0 to 28 { - affine.for %arg4 = 0 to 28 { - %6 = affine.load %alloc[%arg1, %arg2, %arg3, %arg4] : memref<1x8x28x28xf32> - %7 = arith.cmpf oge, %6, %cst_0 : f32 - %8 = arith.select %7, %6, %cst_0 : f32 - affine.store %8, %alloc_1[%arg1, %arg2, %arg3, %arg4] : memref<1x8x28x28xf32> - } - } - } - } - %alloc_2 = memref.alloc() {alignment = 16 : i64} : memref<1x8x14x14xf32> - %alloca = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 8 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - affine.store %cst, %alloca[] : memref - %6 = affine.max #map6(%arg3) - %7 = affine.max #map6(%arg4) - affine.for %arg5 = 0 to min #map7(%arg3) { - affine.for %arg6 = 0 to min #map7(%arg4) { - %9 = arith.addi %arg5, %6 : index - %10 = arith.addi %arg6, %7 : index - %11 = memref.load %alloc_1[%arg1, %arg2, %9, %10] : memref<1x8x28x28xf32> - %12 = affine.load %alloca[] : memref - %13 = arith.cmpf ogt, %12, %11 : f32 - %14 = arith.select %13, %12, %11 : f32 - affine.store %14, %alloca[] : memref - } - } - %8 = affine.load %alloca[] : memref - affine.store %8, %alloc_2[%arg1, %arg2, %arg3, %arg4] : memref<1x8x14x14xf32> - } - } - } - } - %4 = "krnl.global"() {name = "constant_5", shape = [16], value = dense<[-0.0822488219, -0.108868778, -0.141039595, -0.204869166, -0.17913565, -0.215438381, -0.133805066, -0.195724562, -0.268250644, -0.258212209, -0.0761560649, 0.0132841459, -0.00444464432, -0.414740831, -0.17879115, -0.0386558883]> : tensor<16xf32>} : () -> memref<16xf32> - %alloc_3 = memref.alloc() {alignment = 16 : i64} : memref<1x16x14x14xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 16 { - %6 = affine.apply #map8(%arg2, %arg3) - affine.for %arg4 = 0 to 14 { - affine.for %arg5 = 0 to 14 { - %7 = affine.max #map1(%arg4) - %8 = affine.min #map9(%arg4) - %9 = affine.max #map1(%arg5) - %10 = affine.min #map9(%arg5) - %11 = arith.subi %8, %7 : index - %12 = arith.muli %11, %c8 : index - %13 = arith.subi %10, %9 : index - %14 = arith.muli %12, %13 : index - %alloc_10 = memref.alloc(%14) : memref - %alloc_11 = memref.alloc(%14) : memref - %15 = arith.muli %11, %13 : index - affine.for %arg6 = 0 to 8 { - affine.for %arg7 = max #map1(%arg4) to min #map9(%arg4) { - affine.for %arg8 = max #map1(%arg5) to min #map9(%arg5) { - %19 = affine.apply #map10(%arg6, %arg2) - %20 = affine.apply #map4(%arg7, %arg4) - %21 = affine.apply #map4(%arg8, %arg5) - %22 = affine.load %alloc_2[%arg1, %19, %20, %21] : memref<1x8x14x14xf32> - %23 = affine.load %0[%6, %arg6, %arg7, %arg8] : memref<16x8x5x5xf32> - %24 = affine.apply #map5(%arg8, %9) - %25 = affine.apply #map5(%arg7, %7) - %26 = arith.muli %13, %25 : index - %27 = arith.addi %24, %26 : index - %28 = arith.muli %15, %arg6 : index - %29 = arith.addi %27, %28 : index - memref.store %22, %alloc_10[%29] : memref - memref.store %23, %alloc_11[%29] : memref - } - } - } - %16 = "zkML.dot-product"(%alloc_10, %alloc_11) : (memref, memref) -> f32 - memref.dealloc %alloc_10 : memref - memref.dealloc %alloc_11 : memref - %17 = affine.load %4[%6] : memref<16xf32> - %18 = arith.addf %16, %17 : f32 - affine.store %18, %alloc_3[%arg1, %6, %arg4, %arg5] : memref<1x16x14x14xf32> - } - } - } - } - } - %alloc_4 = memref.alloc() {alignment = 16 : i64} : memref<1x16x14x14xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 16 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - %6 = affine.load %alloc_3[%arg1, %arg2, %arg3, %arg4] : memref<1x16x14x14xf32> - %7 = arith.cmpf oge, %6, %cst_0 : f32 - %8 = arith.select %7, %6, %cst_0 : f32 - affine.store %8, %alloc_4[%arg1, %arg2, %arg3, %arg4] : memref<1x16x14x14xf32> - } - } - } - } - %alloc_5 = memref.alloc() {alignment = 16 : i64} : memref<1x16x4x4xf32> - %alloca_6 = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 16 { - affine.for %arg3 = 0 to 4 { - affine.for %arg4 = 0 to 4 { - affine.store %cst, %alloca_6[] : memref - %6 = affine.max #map11(%arg3) - %7 = affine.max #map11(%arg4) - affine.for %arg5 = 0 to min #map12(%arg3) { - affine.for %arg6 = 0 to min #map12(%arg4) { - %9 = arith.addi %arg5, %6 : index - %10 = arith.addi %arg6, %7 : index - %11 = memref.load %alloc_4[%arg1, %arg2, %9, %10] : memref<1x16x14x14xf32> - %12 = affine.load %alloca_6[] : memref - %13 = arith.cmpf ogt, %12, %11 : f32 - %14 = arith.select %13, %12, %11 : f32 - affine.store %14, %alloca_6[] : memref - } - } - %8 = affine.load %alloca_6[] : memref - affine.store %8, %alloc_5[%arg1, %arg2, %arg3, %arg4] : memref<1x16x4x4xf32> - } - } - } - } - %reinterpret_cast = memref.reinterpret_cast %alloc_5 to offset: [0], sizes: [1, 256], strides: [256, 1] : memref<1x16x4x4xf32> to memref<1x256xf32> - %5 = "krnl.global"() {name = "constant_6", shape = [256, 10], value = dense<"0x05AABB3D63B3F83D52CCAE3D4E19FB3D863FCABD86A1E5BD9A5C12BD1225C5BDC66F17BE3FC80E3DDD6F46BD952D0C3E5D8F153E9D49F5BD9408553EA29568BE7CBFD83E8257703DDD542BBE39DDBDBE5DDA44BEEA2AC13D7DE1BF3DEAF92ABC64206C3E7CA8E7BEB1E4233B56BD4BBCD829023D4FCC9BBE33AB933CF8E9C63CEF1F933E20182F3E315C98BD7BBB903CBEC5D7BDB88CA7BDFB43753DB33EF83936311DBE740CF73DCA7CDC3DE573C13DC10D8FBDF465D2BC2880DF3DEF58AABD351FA93DC3EC33BE31342CBE9253D73D457F32BE9683A8BD9DF3ED3E0CE5F73CBA2923BE695F4C3E78EFCEBD7234FDBEE6BFA83E22C5353ECEA0D23E6C70FC3DFD2F8DBE1ABEEEBEF117BEBEDFFCABBCAD1203BE22E7463DBC69C33ECD8B6DBE1CD6D03EED9DB93C22769F3D32912BBFD1937ABDFE8E3F3D13EA06BD6AA9113EEEA303BE28C8D43C17C412BC8DB2373EB60D09BD4B7BDEBC676C053E36563ABD04DF5B3D28FEB23C6A7CC3BBEC6F4BBD4BBA22BE3AE9DE3DD5252EBE32FBB23E497C32BE4C73293E2FBD0FBE4CE731BEB1EB15BDA043243D7990443EED252E3DD6C127BE7B42E23E86A09D3DB312E0BE82A94A3DAB6D71BEAD3AC9BDF699CFBEC0FCBEBEB989793E4D8705BFA01F113F0C230E3F2BDFD5BD3059383E91FBE8BD0E6822BD53ABE5BD39571BBBA50B4EBB1778D2BD32FB9B3CF5BE93BDBDEC80BDC6FFB13DE4D1733D14B7383EA7EFDC3D69B848BE8157033CA3A3813D4385723C803C93BD31E2DA3D8BED7ABE00E4793C029DABBE984C06BDAAE322BE0E90153FD08B96BD7907043FA602253EA8384DBEDE5AB03DE39188BEF50CF7BE31B9253D390AD4BC5659993E45DE5EBE4039A63D997A883E509294BE957F883EC0EC4FBEC78FFEBD9179C33B5DBF653E6AD10B3EA799E5BC96D48FBE54E7BA3CD657853DEA8B15BE4526D13D268B0CBED3CB653DE620A6BD540CE93BFFA553BEAAD5E73D607538BE3A3AB83E63546BBEFBC4FE3BE0C159BED2EFD1BDC090BA3DA1EE8A3E578614BE60A7B23D96CB8FBD3C180B3EC1CAF03DDC49C7BBC4001EBDD214B03DCC32423DF31316BDFC3EA73D147AAC3D5AFA093E041681BD30B8B53B524B9E3DFEC9C4BCD84297BD7F7C783E0A174D3EC29502BE226CC0BE5EC183BE93542E3EF4ED94BD26B8DFB90E9F0FBDF52B813ECDB5973E3929353E7071D0BE708C37BEFE47F9BE0A043F3F1E1F32BDE8D526BDBEDB673D862291BE1D528A3D9AAF8CBE2F3497BE718FA33E2B55CCBDBAC1B73EAE650CBEA2B178BD84A8B63D0ABFFDBD237BF6BE80C7F7BD6D959ABDAFCE013F2096253E0F0E093D303254BC1245E13DDC8739BEEF1656BE4ACC2E3E8E75553E6EDFD43DA4E6283E55C054BDFC7B983EF262F5BD258B35BE720612BEEF443EBB23B320BEFA987ABDC6163C3E0D258C3E2E87B8BDF771F2BD0745DF3CA52CAB3EC6C413BEA5E293BE0A9182BEEA38C7BDC6E8133FF82395BE5C2F3E3E64C86EBEBC063A3E46F129BCF2451CBD4297B6BD8586253F816C2B3E67D8013E108EC8BD284E5B3EC670873EE5A45C3D886F42BF76C64FBEE259B23EB7C40CBE57DF923E46EF5B3E78CAC93DB63076BEE95E233EA93668BE2D958C3C24C43A3CF864333E037E4C3D4D959E3D64903BBD2D5EC83CC6B652BD103DFABEB5C486BD6E4ECE3D4764893EC81D23BD0290C83DDF2A22BDDFD19BBDE7A9DAB862E2053DB2B69FBE906DB63D8D5794BE2FC8A1BD194C7E3EC9ED273F604694BE8053B13E08EFDABE491380BD2E92293D1B33C2BDF41512BE5A56153D5DEE06BE7B1C393C2AD02BBD59B7CFBC028A35BEBF85473DCF4BE93B08FA0FBDCD18F7BD99EB1C3D366C49BE64DE1B3EFF48883D7743DA3C929B3ABEC08F4DBEF2937D3E7326123EBAEA4EBC0A0B013EA6B494BCD9B23DBC9DF2E83D20B1AABEA43D06BEA01F14BECD01603EFF2C943E090B803EAA24323E0ED6D03D762583BEAC73E5BDA83372BD8935103DD73627BDCC0BB5BDD55A8FBCAC7E0F3D8DD4D3BD232E8E3D9663903E494C883D847F2ABE7E88873DCB7C28BE2328D13ED132803D894882BD585A91BE42873B3E072BFD3E68EF973ED7198BBE3DF1FABB4F4AFEBEE3BCAF3EEABBC23D37DC8DBE4DBA453E51F578BE7D3F643E29F5383E6E4EAEBE9F80C93C2C0FF6BDCFC7AA3E60B573BEAB6CFB3C32D1AA3C8B186CBDF5574BBC3EEA81BE4B99ACBEE4A0FE3EA1F0CE3E4388B83CBD1765BE1D5A023B5F53A3BE1BB2F43C4994333EF2915B3E28C2883EFD4BE03D42F090BE2AC5A73E63128D3EF112C1BEAC982CBF0C35D9BE59E133BE8868633EF29E063F293EFF3E6FF53BBF676794BDA62102BD55361D3FAFF48C3EA7ED39BE1ED2303C53408E3E4048473DF38C443ECCAA11BE7BD3C03D03A011BED49E43BDCB800D3E8602E93D28A411BB6AF3463C421703BEC5E7573E5AE2C93DDFF1F0BBD023BBBDE78E3EBEC4D9BF3D3F25613EDECD613CD9DF973CA43FCD3D788A6B3D8DFFB23D28B584BE0E9F513D2D84013D82DB9A3D01B05CBE65703DBE7BD1893ECFDD6DBE98DF753E86DF5A3E158208BF084BA1BDCEDB583E75A52E3EA848093F654D4CBE0B56B9BB5FE947BE2100FEBD8A668A3DAFA2F9BD226E5F3D81219ABE13E80FBAA09E2F3EF32E453F9EB38ABE154E713D09F312BE9C4EC1BC1F46B6BC42AB6FBEED308DBE2D53CE3DD02B08BE10F10ABEC51F1A3E56290B3E9D4FABBD15CA123E3534DF3DC969E0BDADF9973BF130A83DD76269BD138705BD32FB2A3E17CFEEBD2478053EA462ED3D2817AC3D73330FBE482F8EBB69B39ABDC8339A3D12B6153E83D595BD1EE428BE995145BD5EF8E93D1B9629BECE68CBBDF64B31BE14D5C83D506E563D4FEB123D673787399A06E2BD07B4A23D558369BCA44B373D0CABC4BD0E7085BD40DE983CBEA6D83DFFE0E53DB761313E354786BD55EC033D4F7D873DC2EFD2BD35DF3ABDBBEAB9BD7416AF3D38F18CBDD6D4A83EEE560DBE13F780BDCD27303E4EC46BBD4DB60EBE0E898EBEDE9A6EBBEA8A2CBEAA40CD3E3399D73D2339F6BCB3CBA0BEBFEDD6BB60CD9ABCBB37BDBC09F054BEC262EE3DC6453CBD50BCF83D3BB0F13D51E5B63E9C0941BE05E507BE24345D3E03C991BDCDE676BDC66E6ABC97E6C83D9055DDBD76B1FD3C5FE7C7BD97C4CC3CAECD76BEA10DE03C9B0F0A3B304FF43DD186C63D0055A33E6F302ABE54D9273E25FC7EBE5FA8043D22A2C23DCE7E823D9751C93EC96ACCBE563842BE4E5179BECDCBBE3ED8EAB4BEC065AE3BDB1838BD138A6F3DB43F86BEDA3B72BD0844B6BED0EE533E165B8A3E99A85C3E0600B7BEF01312BC8F4DCCBE31B6603C44E4D83C1098113E6D614FBE98A98E3E0221DBB90E1E45BE5ABF223EBA4CBDBC2795E63CDCA7EE3DF39A92BC376867BD50E7A3BD511B97BDD027D4BDBAC72E3D04EBB03E5B02B6BE1B31843DB511BEBD0310EE3D24935B3E7F5E933ECA53B8BE26EBA0BEA236B43D7AADCEBEFFDF493D2C58853EB5CC3ABD804DAEBDF512C53E15EA803EF84DF63C401344BE2C612B3CFB3628BEB68BCF3D052C983DE794923D534109BEBA5844BEA944963BECF2533C064787BCCB9F323B2B7E15BC1ABFEB3D854C8C3DACD3D3BD8DF6ED3D479D783CAF60E13C6265F1BCB6DBB33D73572E3ED92FDABDE885EDBD2B9D0DBE3A1B4FBC526ED53D7CE193BDBCDF2E3DEBB3A93D460F8B3C2CF9833E2F39E2BDFF1A12BE9E85B43DDC076C3EC01C25BDCCBE99BD0EADA1BE39C6B6BCA7CC13BE9D8794BD5F2A22BE8B5A21BE05EA87BD0F4CB53EF812E13B51D01A3D72878FBE8705993CB44CA93C7BC88C3D10804E3E302BC53D5BABF1BD4778F63DE86D8DBCA4914F3D8CA4DF3D5F592EBD17EDE6BCC863633E4A53053E091258BDC440FF3D86C2B03D49FE4A3D1EBB463E2C71A7BE553D52BE40FC73BE0AC78DBE17A8793D67C2473E2D20A33D836E17BE0D9F4EBE2FFFA0BD050FADBCD2531F3F440A03BE1045BABD3E1FD8BDABCD943E79F365BD5E2D6D3D0FB7A9BD23D79E3C04E7AD3E9F132ABDF31833BE5F3D073E7EB46EBC6B23F1BDF1758C3DD6C82EBDC229113E556B823D701C45BEC644E8BD6B4646BCD58EDB3D128F9A3E71A1FFBD76BB16BD7309963E004986BE16A85BBD9D09AEBDDADFF83DF28D00BC078A97BEF82AA73D03C7C43E82CDB33D2759863DD0D0163EF758003EC9C763BD43D7803E2E1CC9BAAD9E38BE0D9828BEC3C0F0BD043BEDBDCB52DBBD7B2C2A3E19DAB53D01BCEA3D253F46BE1A0F1BBEFA54653DB6330B3E0E47FDBC9DDF4ABC80B6A83D1B70853DB69A74BDB0B418BEF802043EE20B7A3E949E2BBE66D6B63D6461123DD9ECB6BD2F503CBBBA4909BE977A6CBE06FC1F3D1B432BBEF6E8363EE533C1BDB6D199BCAE530C3E9AFFA4BE6CD55E3E1AFAA93EAD84F3BEC724E53E5AA19DBEC55B1CBE418D3A3ED3FCB5BDE306293E92272A3D41073B3EAECE3B3BBFFC9BBE498F1A3EE6928ABD92C62ABEB5FA0CBE3A31B23D9DA625BD2F7D17BD464439BE0D25283D9892FE3DB9A72DBD6E7C82BD5DE30ABEBC79B83D9E68133EA3A1493E8B8EF8BC261F3B3DC5B3863DBF7F41BD5184B63DC647253D4D1D56BD5C841FBE4CE7443E86AE0A3E4C8140BC4C46813D1665E1BC264EA13C224A9CBD2D4C273DD8CE09BD22768FBD8D464CBDEFF516BE9AC84E3DC8E577BC158EDD3DA72CCB3D64DF0BBE56F225BDAA3BBABD1D59713E9AF484BEEBD035BD262FEC3C1603543DAFE37E3B28AB203E7E71CF3D5F6554BE0694C0BD4985823E6D3B1BBE9E94C1BEEB21193EC7A8D23DED585FBE3BDE65BAC80EEEBDE814BA3D1B26083F5A423D3E625D1E3E02B29DBD890F9B3D9BB3753E993DE7BE793C063B8AD5CBBE18CC05BEE7B6CCBC44448D3DF15D2ABD457B863D3AF881BDF7B73F3D88AE4DBC9C18EDBDAACA6EBEFDB88DBEBB535FBC92B695BE14DDCDBEF0DFBBBEBE41AC3ED84E4EBDBE242BBD861A85BE637E993EE643E03E367A743D658401BC7550C3BE015260BE59E7803E7EDD313EB1AE32BEA1661EBEEF2B393EDE2AB73E866733BDA22FBE3E02B3E7BEFDC63F3E7F3C57BCB96C12BE645013BF275404BE5975313E1BECC33E7C071D3ECF4C23BE6DF3173D14158EBC76630DBDCA0733BE2F3DDF3D2098993D1EDE1B3ED30229BD1CCE8A3D8BBE1EBEAF78273E9D52693E8BE43F3DD45AF4BC1CFDD43D3E3C42BED2F60A3E40C8B8BD1ECC863E71BC91BE8FE9253FE86A0BBE4F4D843DD98CF63C9ADA8D3E115763BE24E8243E6F9575BE21CB65BE65AE69BC2113E93E1F176ABCDEC649BE1F438CBE167B353E09E9933DC0AFF4BDB24293BDBD50DF3D4B6033BECC59B6BD3DD22F3E0AF473BD9B85E93D982F293E9905B4BE203C0DBD0F70F0BDFE5B09BE68F523BE173A873E8D30DF3DF224B7BD9C6B31BE358B5EBD2F8E3B3DCF47A73DC14FAE3D9446A43D818D77BE0298BE3E06BCCEBD557120BEAA8A503D83924C3EF1C47ABEDF0E0A3E3CC90F3B3554FFBC648AF83DE8EE01BE8A2142BE91AC2A3EA39FF93C2BC41E3EC80258BD4537D73C99EA68BE1B9909BEFD849C3E2C6BBEBD15313DBE8C93CC3EFC8162BE774B303EC6C5F2BC2F38E13D7AF1B8BDFCC661BB6903183E9651533D041C2F3E590BA73CE8278CBEF63C67BEFC7814BE82D74DBD6BC1833E6E37373E4D30D5BE9870C23C0EC230BE2A9F02BF83CCFC3D5BA19CBE68F7183DBE42453E0502F23E51B4DEBDDCF6C73BE24A3EBD625DF9BE8029253D876CAD3D3785033FAA4586BD6EEA193E778D24BD44345DBE58C77A3EF3420ABEB455D63DE620383FEC3302BE912B87BEE65AFB3D7528663BF4451FBFCCCA823D4ED1F03C110EAC3EF28AF1BC2648DF3DB8CAE73D60334FBE62D3783E8069DF3D9A7AA5BEC55411BE68FF83BDD7BB4C3E72F8083D5CFE41BC6BCFBD3C4218053D3A1FCB3D2EE10F3CEF6BD9BEED04033E3F57B13E628E92BE0C74893EF9AC563ED3E943BE5B3EA93E5F649BBE8AFC29BBA42400BEC355733E93B67B3E731D4D3E0514E6BDB34781BE3635E8BDD140A8BE42415ABE77339ABDE851C53E796972BE52EAD33E4EB2F2BD67E9253D615B703D8857DB3EAE3EAABEE2AD98BCEC6999BE7E22B8BD03C4D4BD602E513B4EB900BEA0E81CBDC77BD1BE4867BE3CC33337BE109AA43EFFB182BE4C4BE33DDE43CD3DEC7C033E3E764A3B4076033E5402D3BDF2466B3E04ED9FBE15E9153E0031543DD96B393E70279CBD8E14833CB92879BEE87C9B3E3F2DDABE10848B3E91221C3DA646813CB26BA13E6281AEBC10D3483D06CA56BC395D8D3DD3B5C43B8FEA3ABECACFB73D3B84EC3C130419BD315FFB3D84CA7E3D27E8DF3DB467BABD08B92D3E7762A5BE4AD910BEE2D1833EE3A7FF3D83FB5BBDF50BDE3B4A3BEE3C116E08BCE2CB3B3E5B044F3C04E273BD5FDAE73B0846253E36A7533D3FA907BD7A4F16BE65302BBDBB5CC73C782425BDD66C93BD12697EBD75E4CABD06F09EBD8EFFFF3D5C52693D05A5B33D5F68043E524944BB38C8D0BD518C2F3B40A28FBD61B7C33D2776203E45EBD43D1528133E02514BBE05764D3EF7A67EBEB18E913C3868DB3D1C61FC3E248289BE6A44F8BDDF0B02BEA055573DA8EE89BEF345DCBD0E594A3E5C78553EEBF7403EFD99EBBD284F9CBE9743EFBD7D14B2BE574E053F7E49F1BE19706EBED6561E3EA515833EEF3C393EB1C4B2BE6F83AABDE317A8BD48714F3ED93F2F3EDEAE34BEEEEB31BE86698A3EE3D5A5BDF6F6913DB5EFE6BE92F48B3D9BF27DBDA00B893EFC510EBD3DDD383DD81AE83C48D95CBD1A598B3E2E16F63D007956BD89A3643D26CF933A8E75C8BD8F24B73DCE30763EDFA72ABEDE6E27BE3645383E17AC11BC38D6E7BC2CBB03BE65DF1C3DAD0903BCF004D53E245953BE6DB003BED69A093EA10306BB95BA8EBE0C4194BEF43DFBBDD9BE12BEB747F63D0FBEA4BC301AF33CF01706BD24DFAE3DEAC3BEBB41D28D3EB94ABEBD63DD263D65D984BD3BF0893D5E8CD0BEE107353EE7424DBDD014E3BED134083E8A584DBB71AB11BFCDDAB43E72E21CBEE194933D6DA2AE3E685E80BCA5F39B3C7F62E1BD50C60FBE0B45A83D1F74A13EF9EEA23EB70C14BBB90A073D36C696BD7D7A6DBE8BBDA93DBD37A93E04B8EFBD91FB0DBECA78F03D20E0F2BD19DB793ECA722B3C9EF426BE868CCBBD5903D1BD75B111BD22D44BBE8B5C3D3E02CF2B3A57E834BCF3533EBDE017393E701B55BEFE0E2FBCA674E13D0BE1A4BE088461BDCEF2943E304B4D3EAABD97BE94F493BDE567443EE0BEF7BECF46933ED0EC0F3E6D258F3E97A315BD248FA53DB30E2FBEDDCBFEBD586E8ABE8623C73EC060B3BE8567CBBD242ED13EA6E1273E3882703E709CA8BD8B126FBECE9A763E2F07543DFFDE883E59F2CBBD07AD17BEA5EB22BE5E2C3C3D3F1FF33D741F79BECDB80FBEACA1543EF6FB3CBEE966223EC72AFF3DCED0D9BCBA504D3D63BEA83CAA296D3DACD683BD45777FBC582C183EF363D6BDDB7701BE261B25BE248AE53CA3282EBE449B213EBEA4F63D59E028BE61BFB93E1C8088BE921111BE0146C33D3BAA813DA6EDD9BE6EEEBEBD27B98A3D16A5D43D255CB53E175A293C4EA7A5BD614A4FBD0AEA4DBEBCBAAE3CD26C3C3E90642DBEFE7EB63CAEDFE0BDD26F98BD583613BFA420B53EB310F73D7168523E34B003BD9998073E712872BEC51CBEBDA69004BEAA18DE3DEC81F2BE209340BD0B327BBE6EF3ECBD99F73BBE24D3973FBC5057BE957C0CBE2116ADBDF02ED03EF9C02C3E607BE93D1CECFC3D1EE9B5BEF866443E8C763DBEB44F863D0F104D3E1C83A7BDA25644BEA305ADBDB0B7AEBD0D50B6BB303056BEB942AF3D40B0523B70F2163D53D71A3D73F5F8BD6AFED53DCA21C03CD15BE1BD6061703D894863BD79204EBB5002C9BD932B673DAA51AABD84F191BD8F04A9BE2EFA583E40E70DBD1FFA433E8B0B053E8692D93DD88472BE112BDE3D866B9FBEE4C32D3E22C79EBD96B0023F9825F13D67703B3E43A12FBEF84C573E45E898BE239FC23E4A7A54BCAF6A943D562E89BEC6B14E3ED25B41BDA120FE3D4AFD87BD3EBE8A3D495B86BD6FF9653D10B708BDA42D3DBD73D0E4BD4E55BFBB93C9423CEBEBABBCFC42803E0987E0BD4EF403BC63DB72BEC9F588BBBAB9573E1FF6D2BD1369AEBD7B395FBD1A6C323E39E4863EC2D220BEEAE95BBCCB7709BEEBFB8C3C011CE13D589AF93DDFA71DBEE01EF43DEA04243D1BF95A3E68A636BE9F25B23D38F37FBE06436BBDEF12453D2E33E8BCD952133D3B4B5DBDF45E233D8051463EFFCDB0BDE148C33D9A6FA5BD7E5B013ECC66DFBD6F4796BE59B890BD4AFBE1BDCF6AA63E083CE03DB4322CBD1A123D3ECBFCB3BDBBF551BD1CABBB3D38C795BD416BDCBDECD6593E26935E3E3BD6AE3DBF7677BE80E47E3C5B73153EFF70813E1D3DBABDCCA51A3EAB4136BD3DA9093E01CE02BE26A948BE3480A73E42F0BDBECBA8B8BEF8D5273E06BB4ABEF2F25BBEFA5C533EB37604BE8A0C45BD6928F33DE10612BC8CC8893DE2A76FBE6BEE863BD873B2BEE1879DBED17E01BE0E8F8EBCA3652BBD6A29CE3E555435BE5576873E50CB353EDFA71A3D9C622FBD77576DBE2672723DB1CA1FBEE110483C5A72B73DECC934BEE6C5613DC6AA26BEBE72B13D288AD03E69B097BE86C87FBE221E153EDD69043EDBE4D6BE808E5F3DF46C1DBE8886663E7556AA3D544D26BEF63FB9BD411A423DD5E8FE3DBD77B3BCA8DEB9BDE14F16BE47CCCABDFA123C3E2998993D3B8D7EBEA8C38A3E57F103BD2274083EC3B177BD53BE9B3D1DC931BE1A16393E40489CBE4CC4DC3D9665FF3B394FB23D5C848FBE415312BED04A03BFABD8663E3452013EA3198B3E863D2FBDE15E3FBFC451463D2A712F3EFE6584BEDBCE453F2327CCBE2FC3C3BE9F65143F13C482BED1F2353FACA680BEC09BA6BDD82F023EEF9479BDA2E76E3E9806EA3C1946C1BD595EEBBD8DA5093D18B0433EDAE88DBDAE6849BD864F8CBDFB4754BD358434BE63193EBE551BB5BDA4E5223EC66E173DD906A93DA991363DE279D7BC5BBD90BDBC80DD3D171F063C791430BEBAA9243EF4CAA2BD223F563D77AF693EC66C9CBE53CEDC3D35E7603DDD3AD23E15C9513C21643DBE3F81CE3D28F7F33CA17664BEA49CDABDB5AD92BEE7CC323BD1AD99BCA95FE43C6C19E7BC3C43353E392B95BA87652DBEE5F23A3D724101BE6ACEC6BD7BEDDABD9C77823D749149BD85BD08BE07A402BE8043C43CD641B23C4F859F3DC55E2ABE8356653E7258403E7D43F8BD7917753DD10501BE93FC6EBE78F695BD3753823AB90B79BCF7424BBEA4B941BE5A750B3ED8A6583EABBAB4BC119F89BC64F20A3EE98FCD3DABD0E83ED2A527BE1A5A6ABE525C8F3C89845ABEE4B2C7BDF8D24E3E44A2853EC4715C3E69F3133E37DEAF3BC168FA3D4C8EFEBDBCF4823CB2D602BE513CAE3DDE4A65BE9D47AE3D336B37BD98C528BD96210CBC4A93DCBD8FEFE9BD03C822BE9032643E40ABECBD89F430BE825699BC3A8382BC4E004E3C162BC83C7AF9173E09B92A3E927D58BE13B8703CBB7146BE5E5D1CBE9DB82E3EDD05993D76BFF3BD8233CBBD6784153D17439F3E3C7FC4BD9D08D1BD8712E63EB15C46BEC080743E682E04BEBF0BDC3CE662833E37854BBE90AD03BE6B1301BD33AED9BD56001CBD374B033D396B7FBD3116A5BD1C61083E6176A93D9054A83D8FD7FE3C487F2F3CB27BF73CBA7EECBE88113C3E2066B13CC3FBA3BDFB098B3C8E4835BD284C9B3DA3BF0D3E10BF6F3E4C5DA3BC93E2893D71D58EBD927A4E3DFDDB1B3D3533FABDBC8EB2BD738182BDEAD02D3E402FE2BDE4D7713D1A00EB3E876B13BED1C41B3EC92A143EC6579CBD64259ABE007E58BDBC116C3ED09465BE4D44DEBD0BA941BDC14B0D3E4E3281BE78971D3E9C19A7BDEEC9363ECA99713E638438BE18D5663D669D3A3E67B578BDAEC4103DC0B4ABBD170220BC19B9D8BDE126CEBD1433973D0B65263EDF71263E05CE943D6BF088BEE937893D8955483E5D23323EC107AABEE87B59BEF90BB03CCEAE25BD30AEA93D1D724BBDE7362DBD5F975BBDC84F703EE4038D3E7E48193DCBA5733E019D703CD79CD0BDDE81AD3D8C8751BD87D3D03CF2C5CCBE3F15B03E122998BDA335C93D37A91D3ECE416BBEE6CF3D3EC69C623DE414E2BC53A6C0BDF459E2BDE584AABDAD91293E7872453EC3F025BE51B891BE557363BB76FCDFBD10E8873E89C107BDBF1DBFBDDE2B0EBE8428913DD10C853EDB71303EA79282BEB33A68BD37CE953D235F75BD5B84BCBDD5D766BEA0281EBED40F99BA2AA8883E8717013E3CFCA43E067B04BE5A2D283D2B8C1CBED466EF3E8D4B80BEA66DA5BDBC0D18BE804E973DD4C6A6BE15578ABD5A86FC3B81CE80BC061B723ED71BED3E2CC68EBE70D818BE7B369DBDC451713E742A53BD3A93003F8B4B05BF481B183C33B930BC1A94C43E0FAE21BE514DDB3C9F6980BE5FED083E1F58673C439669BEC0FCC23EF5BBA83DEE3E4EBD2D258FBE6E94193E581B04BEB4C9D03D83B0B6BD12E2A3BD6022E13BF55D14BEB03CF2BDE300B13DD3A4FCBD09EAC73E3587493BC2B94BBD660E60BEBBC91C3E9919093E6D7BEC3D7B8E03BDC21AD7BDF6B7563E6128ECBCAAA167BEE630C63D34C161BEAEDAFB3D14700EBE5C07303D47A9CABD93B0853DE305F03C4AD9AF3D6F0F4ABEA18FC83DDDF3DDBC7D7018BECC91CFBC60DA743E597B5DBC452ACCBDB3B2BABD82B3833C6EF38D3E474CD7BD2A6DC4BD7D862D3D832F4FBDAAC359BE361FF13D715F593D057A17BE234DDBBC1239BF3DFBDBCFBD2689C6BC04D34D3D22391EBC3201D93D11A4A43D1F2019BE86A9933D0C62A83D2D9ABEBDA7FABE3DE60A8FBE9A2B20BC6D7B263E85193A3D450802BB02118DBDCD703EBE3BA2963BE9FC53BEECB2683D40E6263EBA6821BEE104CDBD53018C3DFAACABBD00077E3D108A85BE10373BBEDB5A1EBEDDB9623E446B983E5077113E2A26DD3C270F41BE4F56D5BDE920E53D5736453EFEDFF73D8A657E3B013E2BBD2F3203BE79C0CF3BE881FEBD19395CBD27B973BDDCBC0A3D32218C3E2587DDBBED01C9BD5F01FBBC5E73CF3D337D8D3D4A60AEBC2DCE53BEBF28243EEB3F013F20CFFF3D7BF3EBBD95F766BE1EEC6BBC56A6BA3DF2F81EBE573056BE144AC3BD78ABA1BE479C213E48E00CBE6507E23D7D31493A8676333E7028933E153F253E5D823FBE1546AEBD699182BEBFCDCD3D76D6B5BDB6B0873C785F85BD09700C3E293B81BEE8D5773EE685543EC90F33BD5E63843ECEAD353E1BE4093EE689A3BE1143CCBC274F7DBE27E869BE0D4D963E0B2A22BE923294BB4E81933D32B3A43ECC0E923DBF8B16BBC92CDBBDEDC02C3E86EF75BAFB788A3EE403DBBD38FA89BE5A48BFBD0533B5BE2A179ABE8555B43E1ED687BDE294A2BEDD3369BEB52B62BD8DE0F33E514AA13EF3BDEF3BD492C5BE433ACEBD4C0D193E26C9FE3C1EE4AE3D6AF7B73D197DCFBCD9ADC8BDCEAA853E0CD3493E703EFBBB3FFBFC3E44873BBE24FFE33D3EE3B8BD42A92B3E20DC6EBE070660BE78A94ABEE620F93DF4048B3D4921143EDF5A61BE1F623EBDD18FA9BCCDA1A73A858A113E5D7580BE29047D3CCFBCB03E9256B1BEFC30AB3CC6F19D3E5533703D00D03E3D38B4623E2E16FEBDB7239FBD962199BD98E7DBBD1F8498BD9FA21ABD7F09833D923FE83DA3D20CBE2E742A3EE658053DB96EDC3D5F4627BD5E1122BBE21B9D3E17632CBEC66C91BEE6F5B63EED2C1F3E02FE3A3EB8B0153EEFA338BE40E179BE12FE89BDCFED153E051500BDE2FFC1BE71BCBA3E6AAAB43D809694BD17C48FBD0E5AFE3B3D94DBBE3E71BCBD2C8DC83E2D879FBE5671EBBD121F753EE81FA73DC1E9BC3D7C5EA4BDF7F58ABDF898A4BEFD8D583EE59D08BEE4B570BE5C8737BED558793D81AF2FBD935A5E3EA93753BE47E24D3E5862A53D057F653E6E2214BF6F0045BD296472BE46ABAC3E8310123EAA0A983EB0FE89BE00FD4F3D7C2D75BCAEE10ABEB967803C785D663C274F0A3F77C5D9BE3ABD84BEFF476D3D27FE863E8A9AA43D02A578BE7503F73DE21BB83D2987FA3E5C73373EFCA677BD76B22EBF4ECB86BEF4860DBE65698F3EC54C0B3E4EA58E3EBE2E12BEB49DBABE9CD12E3C563E3EBDEEBAE5BDB0246C3E85DA8FBD1EA0803E7802F33DFF36943E02A9A0BE0953E63D6B3504BF1105B73EFCD445BE78D634BEA13E44BD1EFD1E3EB8B8BB3ECCA2C9BDF0863FBDC7A9483EBFB208BE574A5FBDBC4F0CBC88AC51BE77E551BE467D31BEA16B083D01B570BD7E159FBBC64B42BE7536F33D1B16BABDF90EC13D28DA103EA622623E184BE23CDE2E66BDC36F223E48DD13BE4764283EA2A61CBE05102BBEC2A02B3DD661BCBD6CFEC33D08C9D7BC0CE034BD1E8D32BEDB81913EA381F8BE349F96BE496B863E0E8AB4BDAD745ABEAAC5E23E520ACEBD15EFC93E4E160DBF1A06743D85FC1CBE5EA7083EA72FF23EA7153B3D033642BE3BE20B3FAECCB2BE64BE003F071F88BEA873A2BDFF2AC5BE4ED79C3EBEEF2A3E837ECA3DDFA916BC8FD0643DC5D8663EDB6C103D9B845FBD442EA2BB098D07BEEEE3D0BDE1E3FE3CF136F8BC3615ADBD76621BBD85D2D4BDBF44C6BD3B98CFBD3FBFA53E388989BE84CF4B3D569ED93D3F1DAA3BF2DE25BEAF32CE3D9D655DBDB36657BEFEC1F43D2907863E180D0BBE59F0023C92A2BA3E49C394BE36D91A3E292EFD3C1547BA3D62F9ECBE9AF65EBEB736A7BB461D153E06905B3EDCF9523EC49E10BE06F3213E22CD0EBCBFEBC8BD01C2A23DAF030FBE31DA7C3DA86C893D7D4F8ABCCC67CA3D51E364BD74917B3CDEE70A3E0E1900BE33C504BD4C8F8B3D011D533DE671B7BD361546BE1C67243D0C27013E6752ABBCBAE01C3D116A89BE83B92BBE1F64083E66F0473E1AD5DDBC546C60BC30AB183EA7C9E1BD240389BEB3A42E3EC4E49EBE667005BE98EE493D82ED22BE2CF37FBC0BCD513D7E230F3E19C3D7BDB45817BEDCCC2CBE3B139DBD5242803E0ED444BB714336BE955C483C94856BBD3A1CE2BDF58ED2BC3393933D8DE8033E815EDCBDEDB71ABDAA9711BE68F16ABC0D0FE6BD24C0BE3E93FD55BE74A70E3EDCE3DEBDB069533ED7BE0BBE09B5A4BC2F595C3DE13DEB3D6B0973BDE1C092BEC30A4ABE1EBA843E5A3838BD8313043E0F4007BD6D0CD53D66EDD6BD750DB9BEA4D4D0BE4E6A083F591DE2BE6239F23EAFBA6C3E343BACBEC513CF3E9AED21BED621C7BDA3C667BD48C1ACBD195092BD57EF1F3E4AE3393E5D2B2BBEFEAAC1BDE763F7BDCC509A3CF78A263EB4EF8ABD1FED6F3D5F4D30BD96EB113E440126BE56183EBE74BD743D2920893E38B3E3BC19B106BE8D55333E7C531ABE3CAA053E9FAE2EBE079A9F3DCF0892BE9A44FA3DE8B3BDBDAC810C3EE1DB4FBE1539663BA188403EB663E93C4F741ABC32F4B93C6246C9BDF0E738BEB279EF3EC85126BEFF30CE3D6B1FA0BC823D91BD61822CBDAC30F23BBC8F58BD0138EDBD044301BE1979753D4BA812BEADEFD5BD9E0D293D18EBEF3D7FE8F5BD7340343EA68333BE22F6833EC8292C3E95399DBCFBF944BE194E17BE2708173EC36772BED396DD3D9A46583D41F581BE7CDEC93E7B73F3BB0044F7BD53040EBEF6F2C7BD0004473D3A4D30BEE0DA5B3D0D28893D4E9AB53C37F59FB9374403BD040674BD5B82883D9E251B3D128493BDFBB26DBCF6B0CABD1E776EBDEF7A8EBD63E57FBD2444E0BDB3CB0B3E1AE9D93D780B2EBE50C944BE724B9FBE619B88BD4E4A893E95943EBEA59ACB3E9411BF3CA43F6C3D917D5E3E6097853E4160883DBE37A63BF3FA02BFA96C14BDCE48053E795D8E3EDA37043DE00EBFBE292E4E3CB52894BE1755873EBAF543BED83B833DA1D4DF3E6784C0BE498FF1BDADF58A3EFA8FA03DB077D9BD84956A3DF992CDBC365605BD53A2C9BDF7A52FBDD110893D99F19D3C4A90043E1B9E06BE1707D03DEF24CA3EED1661BE4F43A9BEA3D884BE14E0D2BC8F2F40BE699A243DA984043F814304BD7795073DF9CF87BD7936BD3E82EFB03D019D5EBE5BB7A7BE7442503E8A8F2A3DC4D418BD1C47833E82A885BE0356983E70BE07BE0E89B23E78D5CCBE656BC3BC258D1C3EF082B3BE0591CD3E263AB9BB9EFB82BE14F5FBBC3984F8BDEBD410BEB414723D7099B2BD408FB93D35D5143C2F0DD53B8C89C23BBCDC08BCDC2236BE9066E63EB9FD1EBEE7C957BE6760883D753F263EE64285BD55E3B63AF7463DBEF2FCE6BD3DF7CDBD5804C93D6A214DBE271EB63B334EBA3EA76FE63DB95CEDBE279C7B3D2755BFBE7FD3043FFAE0033E7714F2BD2C580EBE9FCE543E5F4D8BBE812E8A3EA82C63BE82BE703E13C315BD9EE7F93D"> : tensor<256x10xf32>} : () -> memref<256x10xf32> - %alloc_7 = memref.alloc() {alignment = 128 : i64} : memref<1x10xf32> - %alloc_8 = memref.alloc() : memref<256xf32> - %alloc_9 = memref.alloc() : memref<256xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - affine.for %arg3 = 0 to 256 { - %9 = affine.load %reinterpret_cast[%arg1, %arg3] : memref<1x256xf32> - %10 = affine.load %5[%arg3, %arg2] : memref<256x10xf32> - affine.store %9, %alloc_8[%arg3] : memref<256xf32> - affine.store %10, %alloc_9[%arg3] : memref<256xf32> - } - %6 = "zkML.dot-product"(%alloc_8, %alloc_9) : (memref<256xf32>, memref<256xf32>) -> f32 - %7 = affine.load %2[%c0, %arg2] : memref<1x10xf32> - %8 = arith.addf %6, %7 : f32 - affine.store %8, %alloc_7[%arg1, %arg2] : memref<1x10xf32> - } - } - memref.dealloc %alloc_8 : memref<256xf32> - memref.dealloc %alloc_9 : memref<256xf32> - return %alloc_7 : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 28 , 28] , \22name\22 : \22Input3\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22Plus214_Output_0\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Models/ConvMnist/mnist-12.onnx b/mlir-assigner/tests/Models/ConvMnist/mnist-12.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6661bfe3c5c1771594fe50f180df38f4416f2c5f GIT binary patch literal 26143 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 W*CYjL{~HH{f1Pi8VaZW)QvU}WMo+{5 literal 0 HcmV?d00001 diff --git a/mlir-assigner/tests/Ops/Abs/AbsSimple.mlir b/mlir-assigner/tests/Ops/Abs/AbsSimple.mlir deleted file mode 100644 index c5f2aa3..0000000 --- a/mlir-assigner/tests/Ops/Abs/AbsSimple.mlir +++ /dev/null @@ -1,14 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "abssimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = math.absf %0 : f32 - affine.store %1, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Acos/AcosSimple.json b/mlir-assigner/tests/Ops/Acos/AcosSimple.json deleted file mode 100644 index fe67184..0000000 --- a/mlir-assigner/tests/Ops/Acos/AcosSimple.json +++ /dev/null @@ -1 +0,0 @@ -[{"memref": {"data": [0.98284912109375, 0.68408203125, 0.7877655029296875, 0.1751251220703125, 0.524993896484375, 0.4704742431640625, 0.0236968994140625, 0.7029876708984375, 0.179962158203125, 0.4884185791015625], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Acos/AcosSimple.mlir b/mlir-assigner/tests/Ops/Acos/AcosSimple.mlir deleted file mode 100644 index 1af2249..0000000 --- a/mlir-assigner/tests/Ops/Acos/AcosSimple.mlir +++ /dev/null @@ -1,14 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "acossimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = "krnl.acos"(%0) : (f32) -> f32 - affine.store %1, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Acos/AcosSimple.res b/mlir-assigner/tests/Ops/Acos/AcosSimple.res deleted file mode 100644 index ac197be..0000000 --- a/mlir-assigner/tests/Ops/Acos/AcosSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[0.18547306954860687, 0.8174518942832947, 0.6636233925819397, 1.394763469696045, 1.0180883407592773, 1.0809681415557861, 1.5470972061157227, 0.7912066578865051, 1.3898483514785767, 1.060519814491272] -ADD THE ROWS HERE \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Acosh/AcoshSimple.json b/mlir-assigner/tests/Ops/Acosh/AcoshSimple.json deleted file mode 100644 index dc48e71..0000000 --- a/mlir-assigner/tests/Ops/Acosh/AcoshSimple.json +++ /dev/null @@ -1 +0,0 @@ -[{"memref": {"data": [0.3634185791015625, 0.1796417236328125, 0.18707275390625, 0.2105560302734375, 0.7682647705078125, 0.5743408203125, 0.5507354736328125, 0.048004150390625, 0.69854736328125, 0.320709228515625], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Add/AddSimple.json b/mlir-assigner/tests/Ops/Add/AddSimple.json deleted file mode 100644 index 2f99524..0000000 --- a/mlir-assigner/tests/Ops/Add/AddSimple.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "memref": { - "data": [ - 0.7962646484375, 0.7171478271484375, 0.5724029541015625, - 0.8463287353515625, 0.4888916015625, 0.9241485595703125, - 0.896575927734375, 0.9009552001953125, 0.5742950439453125, - 0.28948974609375 - ], - "dims": [1, 10], - "type": "f32" - } - }, - { - "memref": { - "data": [ - 0.256439208984375, 0.635406494140625, 0.4245147705078125, - 0.1829681396484375, 0.974365234375, 0.0897979736328125, - 0.9962005615234375, 0.039520263671875, 0.4347991943359375, - 0.1649627685546875 - ], - "dims": [1, 10], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/Add/AddSimple.mlir b/mlir-assigner/tests/Ops/Add/AddSimple.mlir deleted file mode 100644 index 862db5e..0000000 --- a/mlir-assigner/tests/Ops/Add/AddSimple.mlir +++ /dev/null @@ -1,16 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "addsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>, %arg1: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a", "in_b"], llvm.emit_c_interface, output_names = ["out_a"]} { - %c0 = arith.constant 0 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 10 { - %0 = affine.load %arg0[%c0, %arg3] : memref<1x10xf32> - %1 = affine.load %arg1[%c0, %arg3] : memref<1x10xf32> - %2 = arith.addf %0, %1 : f32 - affine.store %2, %alloc[%arg2, %arg3] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 2 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_b\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Add/AddSimple.res b/mlir-assigner/tests/Ops/Add/AddSimple.res deleted file mode 100644 index 76b3217..0000000 --- a/mlir-assigner/tests/Ops/Add/AddSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[1.052704e+00,1.352554e+00,9.969177e-01,1.029297e+00,1.463257e+00,1.013931e+00,1.892776e+00,9.404602e-01,1.009094e+00,4.544525e-01] -23 rows diff --git a/mlir-assigner/tests/Ops/And/AndSimple.json b/mlir-assigner/tests/Ops/And/AndSimple.json deleted file mode 100644 index c99de65..0000000 --- a/mlir-assigner/tests/Ops/And/AndSimple.json +++ /dev/null @@ -1 +0,0 @@ -[{"memref": {"data": [1, 0, 0, 0, 0, 0, 1, 1, 1, 0], "dims": [1, 10], "type": "bool"}}, {"memref": {"data": [1, 0, 0, 1, 0, 1, 1, 0, 0, 1], "dims": [1, 10], "type": "bool"}}] diff --git a/mlir-assigner/tests/Ops/And/AndSimple.res b/mlir-assigner/tests/Ops/And/AndSimple.res deleted file mode 100644 index d78039b..0000000 --- a/mlir-assigner/tests/Ops/And/AndSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xbool>[1, 0, 0, 0, 0, 0, 1, 0, 0, 0] -ADD THE ROWS HERE \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Ceil/CeilSimple.mlir b/mlir-assigner/tests/Ops/Ceil/CeilSimple.mlir deleted file mode 100644 index 84983e6..0000000 --- a/mlir-assigner/tests/Ops/Ceil/CeilSimple.mlir +++ /dev/null @@ -1,14 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "ceilsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = math.ceil %0 : f32 - affine.store %1, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Clip/ClipSimple.mlir b/mlir-assigner/tests/Ops/Clip/ClipSimple.mlir deleted file mode 100644 index 4d204b7..0000000 --- a/mlir-assigner/tests/Ops/Clip/ClipSimple.mlir +++ /dev/null @@ -1,21 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "clipsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %0 = "krnl.global"() {name = "constant_0", shape = [], value = dense<0.000000e+00> : tensor} : () -> memref - %1 = "krnl.global"() {name = "constant_1", shape = [], value = dense<1.000000e+00> : tensor} : () -> memref - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %2 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %3 = affine.load %0[] : memref - %4 = affine.load %1[] : memref - %5 = arith.cmpf olt, %2, %3 : f32 - %6 = arith.select %5, %3, %2 : f32 - %7 = arith.cmpf olt, %6, %4 : f32 - %8 = arith.select %7, %6, %4 : f32 - affine.store %8, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Floor/FloorSimple.mlir b/mlir-assigner/tests/Ops/Floor/FloorSimple.mlir deleted file mode 100644 index d7f8c43..0000000 --- a/mlir-assigner/tests/Ops/Floor/FloorSimple.mlir +++ /dev/null @@ -1,14 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "floorsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = math.floor %0 : f32 - affine.store %1, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.json b/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.json deleted file mode 100644 index b7f971b..0000000 --- a/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.json +++ /dev/null @@ -1,272 +0,0 @@ -[ - { - "memref": { - "data": [ - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.029637714847922325, 0.7467845678329468, 1.7777715921401978, - 2.796030282974243, 1.5104787349700928, 1.5104787349700928, - 0.36493754386901855, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.09764464199542999, 2.5414655208587646, 2.783302068710327, - 2.796030282974243, 2.783302068710327, 2.796030282974243, - 2.783302068710327, 2.4141831398010254, 0.6067740321159363, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.4922199249267578, 2.5414655208587646, 2.808758497238159, - 1.7650433778762817, -0.4242129623889923, -0.4242129623889923, - 2.0323362350463867, 2.796030282974243, 2.808758497238159, - 2.2869009971618652, -0.15692004561424255, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.09764464199542999, 2.796030282974243, 2.783302068710327, - 1.2431857585906982, -0.2969306409358978, -0.4242129623889923, - -0.4242129623889923, 0.4794916808605194, 2.783302068710327, - 2.796030282974243, 2.783302068710327, 1.3831963539123535, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.2842023968696594, 1.7777715921401978, 2.808758497238159, - 2.5414655208587646, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.09764464199542999, - 2.668747901916504, 2.808758497238159, 2.796030282974243, - 2.808758497238159, 1.7650433778762817, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.22492696344852448, 2.783302068710327, - 2.796030282974243, 0.466763436794281, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 2.159618616104126, 1.4977505207061768, - 2.5287373065948486, 2.796030282974243, 2.783302068710327, - 0.6195022463798523, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 1.5104787349700928, - 2.796030282974243, 2.68147611618042, 0.08491640537977219, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.09764464199542999, - -0.4242129623889923, 0.6195022463798523, 2.5541937351226807, - 2.796030282974243, 2.5541937351226807, -0.042365945875644684, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.09764464199542999, - 2.5414655208587646, 2.783302068710327, 1.6377609968185425, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.0013492107391357, 2.783302068710327, 2.796030282974243, - 1.7650433778762817, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.8740668296813965, 2.808758497238159, 2.796030282974243, - 0.6195022463798523, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.15692004561424255, 2.4141831398010254, - 2.808758497238159, 2.796030282974243, 0.36493754386901855, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 1.3831963539123535, 2.796030282974243, - 2.783302068710327, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.1286314725875854, 2.796030282974243, 2.783302068710327, - 0.8740668296813965, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.029637714847922325, 2.5414655208587646, - 2.808758497238159, 2.796030282974243, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 2.808758497238159, - 2.796030282974243, 2.159618616104126, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.22492696344852448, - 2.783302068710327, 2.796030282974243, 2.783302068710327, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 2.796030282974243, 2.783302068710327, 2.159618616104126, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.22492696344852448, 2.796030282974243, 2.808758497238159, - 2.796030282974243, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.15692004561424255, 2.808758497238159, 2.796030282974243, - 1.3831963539123535, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.22492696344852448, 2.783302068710327, - 2.796030282974243, 2.783302068710327, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.8740668296813965, 2.796030282974243, - 2.783302068710327, 0.8740668296813965, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.905053973197937, 2.808758497238159, 2.796030282974243, - 1.6504892110824585, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.029637714847922325, 2.5414655208587646, - 2.808758497238159, 2.5414655208587646, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 0.8740668296813965, 2.796030282974243, - 2.783302068710327, 2.668747901916504, 0.08491640537977219, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 1.2559140920639038, - 2.783302068710327, 2.796030282974243, 0.466763436794281, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 1.7777715921401978, 2.796030282974243, 2.821486711502075, - 2.796030282974243, 0.6195022463798523, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 0.6195022463798523, - 2.808758497238159, 2.796030282974243, 1.1413596868515015, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.2969306409358978, 1.7650433778762817, - 2.796030282974243, 2.783302068710327, 2.668747901916504, - 1.6377609968185425, 0.09764464199542999, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, 1.6504892110824585, - 2.668747901916504, 2.796030282974243, 2.274172782897949, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, 1.1413596868515015, 2.668747901916504, - 2.808758497238159, 2.796030282974243, 2.5541937351226807, - 1.5104787349700928, 1.5232069492340088, 2.5414655208587646, - 2.808758497238159, 2.5414655208587646, 1.1413596868515015, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - 0.08491640537977219, 1.4977505207061768, 2.5287373065948486, - 2.796030282974243, 2.783302068710327, 2.796030282974243, - 2.783302068710327, 1.4977505207061768, 0.21219873428344727, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923, -0.4242129623889923, -0.4242129623889923, - -0.4242129623889923 - ], - "dims": [1, 1, 28, 28], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.mlir b/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.mlir deleted file mode 100644 index 6cdfc04..0000000 --- a/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.mlir +++ /dev/null @@ -1,39 +0,0 @@ -#map = affine_map<(d0) -> (0, d0 * 2)> -#map1 = affine_map<(d0)[s0, s1, s2, s3, s4] -> (s0 - ((s2 ceildiv s4) * s4 - s2), -(d0 * s3 - s2) + s0, d0 * s3 + (s1 - 1) * s4 - s2 - ((s2 ceildiv s4) * s4 - s2) + 1, d0 * s3 + (s1 - 1) * s4 - s2 - (d0 * s3 - s2) + 1)> -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "maxpoolsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x1x28x28xf32>) -> memref<1x1x14x14xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 0xFF800000 : f32 - %c2 = arith.constant 2 : index - %c0 = arith.constant 0 : index - %c1 = arith.constant 1 : index - %c28 = arith.constant 28 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x1x14x14xf32> - %alloca = memref.alloca() : memref - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 14 { - affine.for %arg4 = 0 to 14 { - affine.store %cst, %alloca[] : memref - %0 = affine.max #map(%arg3) - %1 = affine.max #map(%arg4) - affine.for %arg5 = 0 to min #map1(%arg3)[%c28, %c2, %c0, %c2, %c1] { - affine.for %arg6 = 0 to min #map1(%arg4)[%c28, %c2, %c0, %c2, %c1] { - %3 = arith.addi %arg5, %0 : index - %4 = arith.addi %arg6, %1 : index - %5 = memref.load %arg0[%arg1, %arg2, %3, %4] : memref<1x1x28x28xf32> - %6 = affine.load %alloca[] : memref - %7 = arith.cmpf ogt, %6, %5 : f32 - %8 = arith.select %7, %6, %5 : f32 - affine.store %8, %alloca[] : memref - } - } - %2 = affine.load %alloca[] : memref - affine.store %2, %alloc[%arg1, %arg2, %arg3, %arg4] : memref<1x1x14x14xf32> - } - } - } - } - return %alloc : memref<1x1x14x14xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 28 , 28] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 14 , 14] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.res b/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.res deleted file mode 100644 index 008fb8d..0000000 --- a/mlir-assigner/tests/Ops/MaxPool/MaxPoolSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x1x14x14xf32>[-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.541458e+00,2.796021e+00,2.796021e+00,2.783295e+00,6.067657e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.796021e+00,2.808746e+00,1.765030e+00,2.032333e+00,2.808746e+00,2.783295e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.249146e-01,2.808746e+00,2.541458e+00,-4.242096e-01,9.764099e-02,2.808746e+00,2.808746e+00,2.783295e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.541458e+00,2.796021e+00,8.491516e-02,-4.242096e-01,-4.242096e-01,9.764099e-02,2.554184e+00,2.796021e+00,1.765030e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-1.569061e-01,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.249146e-01,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.249146e-01,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,2.808746e+00,2.796021e+00,8.491516e-02,-4.242096e-01,-4.242096e-01,-4.242096e-01,1.255905e+00,2.808746e+00,2.541458e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,1.777771e+00,2.821472e+00,2.796021e+00,1.637756e+00,-4.242096e-01,1.650482e+00,2.808746e+00,2.796021e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,1.141357e+00,2.808746e+00,2.796021e+00,2.796021e+00,2.808746e+00,2.541458e+00,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01,-4.242096e-01] -1568 rows diff --git a/mlir-assigner/tests/Ops/Mean/MeanSimple.mlir b/mlir-assigner/tests/Ops/Mean/MeanSimple.mlir deleted file mode 100644 index 904ef1c..0000000 --- a/mlir-assigner/tests/Ops/Mean/MeanSimple.mlir +++ /dev/null @@ -1,20 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "meansimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>, %arg1: memref<1x10xf32>, %arg2: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a", "in_b", "in_c"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 3.000000e+00 : f32 - %c0 = arith.constant 0 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg3 = 0 to 1 { - affine.for %arg4 = 0 to 10 { - %0 = affine.load %arg0[%c0, %arg4] : memref<1x10xf32> - %1 = affine.load %arg1[%c0, %arg4] : memref<1x10xf32> - %2 = arith.addf %0, %1 : f32 - %3 = affine.load %arg2[%c0, %arg4] : memref<1x10xf32> - %4 = arith.addf %2, %3 : f32 - %5 = arith.divf %4, %cst : f32 - affine.store %5, %alloc[%arg3, %arg4] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 3 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_b\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_c\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Mlir/Conv/.ignore b/mlir-assigner/tests/Ops/Mlir/Conv/.ignore new file mode 100644 index 0000000..ea80799 --- /dev/null +++ b/mlir-assigner/tests/Ops/Mlir/Conv/.ignore @@ -0,0 +1 @@ +ConvMnist12First.mlir diff --git a/mlir-assigner/tests/Ops/Conv/ConvMnist12First.mlir b/mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First similarity index 100% rename from mlir-assigner/tests/Ops/Conv/ConvMnist12First.mlir rename to mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First diff --git a/mlir-assigner/tests/Ops/Conv/ConvMnist12First.json b/mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.json similarity index 100% rename from mlir-assigner/tests/Ops/Conv/ConvMnist12First.json rename to mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.json diff --git a/mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.mlir b/mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.mlir new file mode 100644 index 0000000..8d7426f --- /dev/null +++ b/mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.mlir @@ -0,0 +1,45 @@ +#map = affine_map<(d0, d1) -> (d0 * 8 + d1)> +#map1 = affine_map<(d0) -> (-d0 + 2, 0)> +#map2 = affine_map<(d0) -> (-d0 + 30, 5)> +#map3 = affine_map<(d0)[s0] -> (d0 + s0)> +#map4 = affine_map<(d0, d1) -> (d0 + d1 - 2)> +module { + func.func @main_graph(%arg0: memref<1x1x28x28xf32>, %arg1: memref<8x1x5x5xf32>, %arg2: memref<8xf32>) -> memref<1x8x28x28xf32> attributes {input_names = ["in_a", "in_b", "in_c"], llvm.emit_c_interface, output_names = ["out_a"]} { + %cst = arith.constant 0.000000e+00 : f32 + %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x8x28x28xf32> + %alloca = memref.alloca() : memref + affine.for %arg3 = 0 to 1 { + affine.for %arg4 = 0 to 1 { + affine.for %arg5 = 0 to 8 { + %0 = affine.apply #map(%arg4, %arg5) + affine.for %arg6 = 0 to 28 { + affine.for %arg7 = 0 to 28 { + affine.store %cst, %alloca[] : memref + affine.for %arg8 = 0 to 1 { + affine.for %arg9 = max #map1(%arg6) to min #map2(%arg6) { + affine.for %arg10 = max #map1(%arg7) to min #map2(%arg7) { + %4 = affine.apply #map3(%arg8)[%arg4] + %5 = affine.apply #map4(%arg9, %arg6) + %6 = affine.apply #map4(%arg10, %arg7) + %7 = affine.load %arg0[%arg3, %4, %5, %6] : memref<1x1x28x28xf32> + %8 = affine.load %arg1[%0, %arg8, %arg9, %arg10] : memref<8x1x5x5xf32> + %9 = affine.load %alloca[] : memref + %10 = arith.mulf %7, %8 : f32 + %11 = arith.addf %9, %10 : f32 + affine.store %11, %alloca[] : memref + } + } + } + %1 = affine.load %alloca[] : memref + %2 = affine.load %arg2[%0] : memref<8xf32> + %3 = arith.addf %1, %2 : f32 + affine.store %3, %alloc[%arg3, %0, %arg6, %arg7] : memref<1x8x28x28xf32> + } + } + } + } + } + return %alloc : memref<1x8x28x28xf32> + } + "krnl.entry_point"() {func = @main_graph, numInputs = 3 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 1 , 28 , 28] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [8 , 1 , 5 , 5] , \22name\22 : \22in_b\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [8] , \22name\22 : \22in_c\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 8 , 28 , 28] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () +} diff --git a/mlir-assigner/tests/Ops/Conv/ConvMnist12First.res b/mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.res similarity index 100% rename from mlir-assigner/tests/Ops/Conv/ConvMnist12First.res rename to mlir-assigner/tests/Ops/Mlir/Conv/ConvMnist12First.res diff --git a/mlir-assigner/tests/Ops/Conv/DotProductConvMnist12First.json b/mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12First.json similarity index 100% rename from mlir-assigner/tests/Ops/Conv/DotProductConvMnist12First.json rename to mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12First.json diff --git a/mlir-assigner/tests/Ops/Conv/DotProductConvMnist12First.mlir b/mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12First.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Conv/DotProductConvMnist12First.mlir rename to mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12First.mlir diff --git a/mlir-assigner/tests/Ops/Conv/DotProductConvMnist12First.res b/mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12First.res similarity index 100% rename from mlir-assigner/tests/Ops/Conv/DotProductConvMnist12First.res rename to mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12First.res diff --git a/mlir-assigner/tests/Ops/Conv/DotProductConvMnist12Second.json b/mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12Second.json similarity index 100% rename from mlir-assigner/tests/Ops/Conv/DotProductConvMnist12Second.json rename to mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12Second.json diff --git a/mlir-assigner/tests/Ops/Conv/DotProductConvMnist12Second.mlir b/mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12Second.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Conv/DotProductConvMnist12Second.mlir rename to mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12Second.mlir diff --git a/mlir-assigner/tests/Ops/Conv/DotProductConvMnist12Second.res b/mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12Second.res similarity index 100% rename from mlir-assigner/tests/Ops/Conv/DotProductConvMnist12Second.res rename to mlir-assigner/tests/Ops/Mlir/Conv/DotProductConvMnist12Second.res diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBeta.json b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBeta.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBeta.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBeta.json diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBeta.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBeta.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBeta.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBeta.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBeta.res b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBeta.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBeta.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBeta.res diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBoth.json b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBoth.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBoth.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBoth.json diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBoth.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBoth.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBoth.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBoth.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBoth.res b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBoth.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBoth.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBoth.res diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBothTrans.json b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBothTrans.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBothTrans.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBothTrans.json diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBothTrans.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBothTrans.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBothTrans.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBothTrans.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBothTrans.res b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBothTrans.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmAlphaBetaBothTrans.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmAlphaBetaBothTrans.res diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmBeta.json b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmBeta.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmBeta.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmBeta.json diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmBeta.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmBeta.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmBeta.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmBeta.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmBeta.res b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmBeta.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmBeta.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmBeta.res diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmSimple.json b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmSimple.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmSimple.json diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmSimple.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmSimple.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmSimple.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmSimple.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/DotProductGemmSimple.res b/mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/DotProductGemmSimple.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/DotProductGemmSimple.res diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBeta.json b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBeta.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBeta.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBeta.json diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBeta.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBeta.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBeta.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBeta.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBeta.res b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBeta.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBeta.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBeta.res diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBoth.json b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBoth.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBoth.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBoth.json diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBoth.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBoth.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBoth.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBoth.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBoth.res b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBoth.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBoth.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBoth.res diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBothTrans.json b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBothTrans.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBothTrans.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBothTrans.json diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBothTrans.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBothTrans.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBothTrans.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBothTrans.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBothTrans.res b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBothTrans.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmAlphaBetaBothTrans.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmAlphaBetaBothTrans.res diff --git a/mlir-assigner/tests/Ops/Gemm/GemmBeta.json b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmBeta.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmBeta.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmBeta.json diff --git a/mlir-assigner/tests/Ops/Gemm/GemmBeta.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmBeta.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmBeta.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmBeta.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/GemmBeta.res b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmBeta.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmBeta.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmBeta.res diff --git a/mlir-assigner/tests/Ops/Gemm/GemmSimple.json b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmSimple.json rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmSimple.json diff --git a/mlir-assigner/tests/Ops/Gemm/GemmSimple.mlir b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmSimple.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmSimple.mlir rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmSimple.mlir diff --git a/mlir-assigner/tests/Ops/Gemm/GemmSimple.res b/mlir-assigner/tests/Ops/Mlir/Gemm/GemmSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Gemm/GemmSimple.res rename to mlir-assigner/tests/Ops/Mlir/Gemm/GemmSimple.res diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul11.json b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul11.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul11.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul11.json diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul11.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul11.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul11.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul11.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul11.res b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul11.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul11.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul11.res diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul1616.json b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1616.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul1616.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1616.json diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul1616.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1616.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul1616.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1616.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul1616.res b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1616.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul1616.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1616.res diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul1dim.json b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1dim.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul1dim.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1dim.json diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul1dim.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1dim.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul1dim.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1dim.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMul1dim.res b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1dim.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMul1dim.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMul1dim.res diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMulMultiDim.json b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMulMultiDim.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMulMultiDim.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMulMultiDim.json diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMulMultiDim.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMulMultiDim.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMulMultiDim.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMulMultiDim.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/DotProductMatMulMultiDim.res b/mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMulMultiDim.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/DotProductMatMulMultiDim.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/DotProductMatMulMultiDim.res diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul11.json b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul11.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul11.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul11.json diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul11.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul11.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul11.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul11.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul11.res b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul11.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul11.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul11.res diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul1616.json b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1616.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul1616.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1616.json diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul1616.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1616.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul1616.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1616.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul1616.res b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1616.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul1616.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1616.res diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul1dim.json b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1dim.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul1dim.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1dim.json diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul1dim.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1dim.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul1dim.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1dim.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/MatMul1dim.res b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1dim.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMul1dim.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMul1dim.res diff --git a/mlir-assigner/tests/Ops/MatMul/MatMulMultiDim.json b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMulMultiDim.json similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMulMultiDim.json rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMulMultiDim.json diff --git a/mlir-assigner/tests/Ops/MatMul/MatMulMultiDim.mlir b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMulMultiDim.mlir similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMulMultiDim.mlir rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMulMultiDim.mlir diff --git a/mlir-assigner/tests/Ops/MatMul/MatMulMultiDim.res b/mlir-assigner/tests/Ops/Mlir/MatMul/MatMulMultiDim.res similarity index 100% rename from mlir-assigner/tests/Ops/MatMul/MatMulMultiDim.res rename to mlir-assigner/tests/Ops/Mlir/MatMul/MatMulMultiDim.res diff --git a/mlir-assigner/tests/Ops/Mod/ModFloat.mlir b/mlir-assigner/tests/Ops/Mod/ModFloat.mlir deleted file mode 100644 index 547e40b..0000000 --- a/mlir-assigner/tests/Ops/Mod/ModFloat.mlir +++ /dev/null @@ -1,17 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "modfloat.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>, %arg1: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a", "in_b"], llvm.emit_c_interface, output_names = ["out_a"]} { - %c0 = arith.constant 0 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 10 { - %0 = affine.load %arg0[%c0, %arg3] : memref<1x10xf32> - %1 = affine.load %arg1[%c0, %arg3] : memref<1x10xf32> - %2 = arith.remf %0, %1 : f32 - %3 = math.copysign %2, %0 : f32 - affine.store %3, %alloc[%arg2, %arg3] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 2 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_b\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Mul/MulSimple.json b/mlir-assigner/tests/Ops/Mul/MulSimple.json deleted file mode 100644 index 2f99524..0000000 --- a/mlir-assigner/tests/Ops/Mul/MulSimple.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "memref": { - "data": [ - 0.7962646484375, 0.7171478271484375, 0.5724029541015625, - 0.8463287353515625, 0.4888916015625, 0.9241485595703125, - 0.896575927734375, 0.9009552001953125, 0.5742950439453125, - 0.28948974609375 - ], - "dims": [1, 10], - "type": "f32" - } - }, - { - "memref": { - "data": [ - 0.256439208984375, 0.635406494140625, 0.4245147705078125, - 0.1829681396484375, 0.974365234375, 0.0897979736328125, - 0.9962005615234375, 0.039520263671875, 0.4347991943359375, - 0.1649627685546875 - ], - "dims": [1, 10], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/Mul/MulSimple.mlir b/mlir-assigner/tests/Ops/Mul/MulSimple.mlir deleted file mode 100644 index 95442c4..0000000 --- a/mlir-assigner/tests/Ops/Mul/MulSimple.mlir +++ /dev/null @@ -1,16 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "mulsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>, %arg1: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a", "in_b"], llvm.emit_c_interface, output_names = ["out_a"]} { - %c0 = arith.constant 0 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 10 { - %0 = affine.load %arg0[%c0, %arg3] : memref<1x10xf32> - %1 = affine.load %arg1[%c0, %arg3] : memref<1x10xf32> - %2 = arith.mulf %0, %1 : f32 - affine.store %2, %alloc[%arg2, %arg3] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 2 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_b\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Mul/MulSimple.res b/mlir-assigner/tests/Ops/Mul/MulSimple.res deleted file mode 100644 index 90ca219..0000000 --- a/mlir-assigner/tests/Ops/Mul/MulSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[2.041931e-01,4.556732e-01,2.429962e-01,1.548462e-01,4.763641e-01,8.299255e-02,8.931732e-01,3.559875e-02,2.497101e-01,4.776001e-02] -23 rows diff --git a/mlir-assigner/tests/Ops/Neg/NegSimple.mlir b/mlir-assigner/tests/Ops/Neg/NegSimple.mlir deleted file mode 100644 index bb7d73b..0000000 --- a/mlir-assigner/tests/Ops/Neg/NegSimple.mlir +++ /dev/null @@ -1,14 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "negsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = arith.negf %0 : f32 - affine.store %1, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Abs/AbsSimple.json b/mlir-assigner/tests/Ops/Onnx/Abs/AbsSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Abs/AbsSimple.json rename to mlir-assigner/tests/Ops/Onnx/Abs/AbsSimple.json diff --git a/mlir-assigner/tests/Ops/Abs/AbsSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Abs/AbsSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Abs/AbsSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Abs/AbsSimple.onnx diff --git a/mlir-assigner/tests/Ops/Abs/AbsSimple.res b/mlir-assigner/tests/Ops/Onnx/Abs/AbsSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Abs/AbsSimple.res rename to mlir-assigner/tests/Ops/Onnx/Abs/AbsSimple.res diff --git a/mlir-assigner/tests/Ops/Relu/Relu.res b/mlir-assigner/tests/Ops/Onnx/Acos/.ignore similarity index 100% rename from mlir-assigner/tests/Ops/Relu/Relu.res rename to mlir-assigner/tests/Ops/Onnx/Acos/.ignore diff --git a/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.json b/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.json new file mode 100644 index 0000000..43bc542 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.9506072998046875, 0.5893402099609375, 0.586944580078125, 0.207763671875, 0.1049041748046875, 0.54559326171875, 0.22021484375, 0.0284423828125, 0.3142852783203125, 0.9307708740234375], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.onnx new file mode 100644 index 0000000..f3c71e5 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.onnx @@ -0,0 +1,14 @@ + :R + +in_aout_a"Acos +AcosSimpleZ +in_a +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.res b/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.res new file mode 100644 index 0000000..3928e1d --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Acos/AcosSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xf32>[0.31560972332954407, 0.9405544400215149, 0.9435165524482727, 1.3615081310272217, 1.4656988382339478, 0.9936994910240173, 1.3487615585327148, 1.5423500537872314, 1.2510926723480225, 0.3742806017398834] +ADD THE ROWS HERE \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Acosh/.ignore b/mlir-assigner/tests/Ops/Onnx/Acosh/.ignore new file mode 100644 index 0000000..e69de29 diff --git a/mlir-assigner/tests/Ops/Acosh/AcoshSimple.mlir b/mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Acosh/AcoshSimple.mlir rename to mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.mlir diff --git a/mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.onnx new file mode 100644 index 0000000..648f213 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.onnx @@ -0,0 +1,13 @@ + :T + +in_aout_a"Acosh AcoshSimpleZ +in_a +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Acosh/AcoshSimple.res b/mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Acosh/AcoshSimple.res rename to mlir-assigner/tests/Ops/Onnx/Acosh/AcoshSimple.res diff --git a/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.json b/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.json new file mode 100644 index 0000000..51b9263 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.964080810546875, 0.82867431640625, 0.7520751953125, 0.6866455078125, 0.237274169921875, 0.1764984130859375, 0.6488037109375, 0.2052764892578125, 0.2502593994140625, 0.40216064453125], "dims": [1, 10], "type": "f32"}}, {"memref": {"data": [0.3103790283203125, 0.0527191162109375, 0.2942352294921875, 0.126953125, 0.5910797119140625, 0.037933349609375, 0.251983642578125, 0.93328857421875, 0.125457763671875, 0.6555633544921875], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.onnx new file mode 100644 index 0000000..190142f --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.onnx @@ -0,0 +1,19 @@ + :n + +in_a +in_bout_a"Add AddSimpleZ +in_a +  + + +Z +in_b +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.res b/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.res new file mode 100644 index 0000000..d8409ad --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Add/AddSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xf32>[1.2744598388671875, 0.8813934326171875, 1.0463104248046875, 0.8135986328125, 0.8283538818359375, 0.2144317626953125, 0.900787353515625, 1.1385650634765625, 0.3757171630859375, 1.0577239990234375] +23 rows diff --git a/mlir-assigner/tests/Ops/Onnx/And/.ignore b/mlir-assigner/tests/Ops/Onnx/And/.ignore new file mode 100644 index 0000000..e69de29 diff --git a/mlir-assigner/tests/Ops/Onnx/And/AndSimple.json b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.json new file mode 100644 index 0000000..bd5827e --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0, 1, 1, 0, 1, 0, 1, 1, 0, 1], "dims": [1, 10], "type": "bool"}}, {"memref": {"data": [0, 0, 1, 0, 0, 1, 0, 0, 1, 0], "dims": [1, 10], "type": "bool"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/And/AndSimple.mlir b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.mlir similarity index 93% rename from mlir-assigner/tests/Ops/And/AndSimple.mlir rename to mlir-assigner/tests/Ops/Onnx/And/AndSimple.mlir index 6da067c..9a8f026 100644 --- a/mlir-assigner/tests/Ops/And/AndSimple.mlir +++ b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.mlir @@ -1,4 +1,4 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "andsimple.0.mlir"} { +module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-pc-linux-gnu", "onnx-mlir.symbol-postfix" = "andsimple.mlir"} { func.func @main_graph(%arg0: memref<1x10xi1>, %arg1: memref<1x10xi1>) -> memref<1x10xi1> attributes {input_names = ["in_a", "in_b"], llvm.emit_c_interface, output_names = ["out_a"]} { %c0 = arith.constant 0 : index %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xi1> diff --git a/mlir-assigner/tests/Ops/Onnx/And/AndSimple.onnx b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.onnx new file mode 100644 index 0000000..2f8913b --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.onnx @@ -0,0 +1,19 @@ + :n + +in_a +in_bout_a"And AndSimpleZ +in_a +   + + +Z +in_b +   + + +b +out_a +   + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/And/AndSimple.res b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.res new file mode 100644 index 0000000..73917a4 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/And/AndSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xbool>[0, 0, 1, 0, 0, 0, 0, 0, 0, 0] +ADD THE ROWS HERE \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Ceil/CeilSimple.json b/mlir-assigner/tests/Ops/Onnx/Ceil/CeilSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Ceil/CeilSimple.json rename to mlir-assigner/tests/Ops/Onnx/Ceil/CeilSimple.json diff --git a/mlir-assigner/tests/Ops/Ceil/CeilSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Ceil/CeilSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Ceil/CeilSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Ceil/CeilSimple.onnx diff --git a/mlir-assigner/tests/Ops/Ceil/CeilSimple.res b/mlir-assigner/tests/Ops/Onnx/Ceil/CeilSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Ceil/CeilSimple.res rename to mlir-assigner/tests/Ops/Onnx/Ceil/CeilSimple.res diff --git a/mlir-assigner/tests/Ops/Clip/ClipSimple.json b/mlir-assigner/tests/Ops/Onnx/Clip/ClipSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Clip/ClipSimple.json rename to mlir-assigner/tests/Ops/Onnx/Clip/ClipSimple.json diff --git a/mlir-assigner/tests/Ops/Clip/ClipSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Clip/ClipSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Clip/ClipSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Clip/ClipSimple.onnx diff --git a/mlir-assigner/tests/Ops/Clip/ClipSimple.res b/mlir-assigner/tests/Ops/Onnx/Clip/ClipSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Clip/ClipSimple.res rename to mlir-assigner/tests/Ops/Onnx/Clip/ClipSimple.res diff --git a/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.json b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.json new file mode 100644 index 0000000..21b1071 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.3543853759765625, 0.6533203125, 0.699615478515625, 0.89825439453125, 0.143310546875, 0.4310760498046875, 0.6645050048828125, 0.8781890869140625, 0.92529296875, 0.1040802001953125, 0.9009857177734375, 0.372344970703125, 0.83001708984375, 0.9489898681640625, 0.6815948486328125, 0.047393798828125, 0.198760986328125, 0.169464111328125, 0.338348388671875, 0.98419189453125, 0.9506072998046875, 0.769866943359375, 0.5175323486328125, 0.666351318359375, 0.5301666259765625, 0.7068634033203125, 0.8123321533203125, 0.398712158203125, 0.5739898681640625, 0.7454833984375, 0.67425537109375, 0.25872802734375, 0.0252685546875, 0.9683074951171875, 0.6991424560546875, 0.5138397216796875, 0.15008544921875, 0.2056427001953125, 0.6192474365234375, 0.208526611328125, 0.8179473876953125, 0.0416259765625, 0.56201171875, 0.8106231689453125, 0.1826934814453125, 0.9124603271484375, 0.390045166015625, 0.55572509765625, 0.065643310546875, 0.9519195556640625, 0.5024261474609375, 0.8898468017578125, 0.7949981689453125, 0.83648681640625, 0.7220306396484375, 0.0899200439453125, 0.1165924072265625, 0.3986663818359375, 0.0806121826171875, 0.7070770263671875, 0.7642822265625, 0.40570068359375, 0.5279083251953125, 0.0616607666015625, 0.6737060546875, 0.275360107421875, 0.2417144775390625, 0.2126312255859375, 0.1110992431640625, 0.1575469970703125, 0.327239990234375, 0.9755096435546875, 0.4184112548828125, 0.52154541015625, 0.2851715087890625, 0.9779205322265625, 0.265380859375, 0.46734619140625, 0.0320892333984375, 0.631011962890625, 0.264068603515625, 0.562042236328125, 0.7656707763671875, 0.512725830078125, 0.6206817626953125, 0.335662841796875, 0.9456024169921875, 0.706085205078125, 0.8313446044921875, 0.2591705322265625, 0.63543701171875, 0.9040679931640625, 0.577972412109375, 0.2373809814453125, 0.42462158203125, 0.02001953125, 0.9005584716796875, 0.710601806640625, 0.8330841064453125, 0.5536346435546875, 0.7842559814453125, 0.230987548828125, 0.174530029296875, 0.9475860595703125, 0.0702667236328125, 0.6112823486328125, 0.159576416015625, 0.0952911376953125, 0.663360595703125, 0.5191802978515625, 0.516326904296875, 0.014007568359375, 0.848968505859375, 0.5688934326171875, 0.887298583984375, 0.3086395263671875, 0.5442657470703125, 0.7382659912109375, 0.97955322265625, 0.8061676025390625, 0.776336669921875, 0.345916748046875, 0.852569580078125, 0.821502685546875, 0.1710968017578125, 0.7054290771484375, 0.0658721923828125, 0.420166015625, 0.7921600341796875, 0.2846527099609375, 0.3937835693359375, 0.1345672607421875, 0.2550201416015625, 0.2699432373046875, 0.972930908203125, 0.0340728759765625, 0.194915771484375, 0.6292724609375, 0.8214263916015625, 0.4863433837890625, 0.73345947265625, 0.5893096923828125, 0.3931427001953125, 0.15997314453125, 0.2692718505859375, 0.5607147216796875, 0.17559814453125, 0.366424560546875, 0.982666015625, 0.3262176513671875, 0.830322265625, 0.5867156982421875, 0.0039825439453125, 0.322540283203125, 0.090179443359375, 0.5482330322265625, 0.1376495361328125, 0.224212646484375, 0.9218597412109375, 0.584381103515625, 0.57391357421875, 0.7209320068359375, 0.057586669921875, 0.9664154052734375, 0.6090240478515625, 0.47039794921875, 0.34356689453125, 0.4970703125, 0.969818115234375, 0.431304931640625, 0.305145263671875, 0.9856414794921875, 0.6019439697265625, 0.5889892578125, 0.2381439208984375, 0.9534454345703125, 0.6313323974609375, 0.505035400390625, 0.368865966796875, 0.357147216796875, 0.0829620361328125, 0.6497039794921875, 0.7653045654296875, 0.9339752197265625, 0.55322265625, 0.3330841064453125, 0.1392059326171875, 0.0517425537109375, 0.20245361328125, 0.880035400390625, 0.9535980224609375, 0.40374755859375, 0.8544769287109375, 0.7019500732421875, 0.4033355712890625, 0.17083740234375, 0.0153350830078125, 0.451873779296875, 0.1239013671875, 0.2974090576171875, 0.0301055908203125, 0.4730682373046875, 0.557342529296875, 0.3282012939453125, 0.1096649169921875, 0.6819000244140625, 0.132476806640625, 0.93682861328125, 0.06243896484375, 0.5119171142578125, 0.513824462890625, 0.5229644775390625, 0.41741943359375, 0.141998291015625, 0.640777587890625, 0.1669158935546875, 0.7472686767578125, 0.28753662109375, 0.482330322265625, 0.2891693115234375, 0.99957275390625, 0.5307769775390625, 0.8304595947265625, 0.6254425048828125, 0.449676513671875, 0.3992767333984375, 0.7050018310546875, 0.08880615234375, 0.6385345458984375, 0.0810394287109375, 0.6584014892578125, 0.628082275390625, 0.803924560546875, 0.2667083740234375, 0.5472869873046875, 0.04827880859375, 0.6450347900390625, 0.367889404296875, 0.854461669921875, 0.429229736328125, 0.136138916015625, 0.1150970458984375, 0.4127197265625, 0.83740234375, 0.025360107421875, 0.2291259765625, 0.4119720458984375, 0.3060302734375, 0.027313232421875, 0.823272705078125, 0.6974639892578125, 0.4659423828125, 0.7906036376953125, 0.8004913330078125, 0.66644287109375, 0.353607177734375, 0.162750244140625, 0.4114837646484375, 0.837554931640625, 0.9150848388671875, 0.4486236572265625, 0.997894287109375, 0.914459228515625, 0.2533416748046875, 0.0979156494140625, 0.08203125, 0.220611572265625, 0.318695068359375, 0.682037353515625, 0.439483642578125, 0.555023193359375, 0.7763824462890625, 0.735321044921875, 0.1911163330078125, 0.48455810546875, 0.2716064453125, 0.188385009765625, 0.5570220947265625, 0.60406494140625, 0.3873443603515625, 0.47003173828125, 0.2050933837890625, 0.417083740234375, 0.255096435546875, 0.68408203125, 0.4163970947265625, 0.089813232421875, 0.172698974609375, 0.0794830322265625, 0.8798065185546875, 0.6011199951171875, 0.0563201904296875, 0.2567138671875, 0.9707183837890625, 0.540313720703125, 0.4473876953125, 0.0322418212890625, 0.401336669921875, 0.741302490234375, 0.5018157958984375, 0.1509857177734375, 0.9139251708984375, 0.7182769775390625, 0.5638885498046875, 0.1303863525390625, 0.4636077880859375, 0.8863525390625, 0.8754730224609375, 0.9494476318359375, 0.9644775390625, 0.43304443359375, 0.4412841796875, 0.180145263671875, 0.9834747314453125, 0.3435211181640625, 0.597900390625, 0.91278076171875, 0.7659149169921875, 0.673675537109375, 0.9376373291015625, 0.1373748779296875, 0.172027587890625, 0.9959869384765625, 0.00811767578125, 0.881134033203125, 0.2392425537109375, 0.5921630859375, 0.185943603515625, 0.2505645751953125, 0.2225799560546875, 0.147369384765625, 0.1544952392578125, 0.473236083984375, 0.3112335205078125, 0.3915557861328125, 0.625701904296875, 0.787139892578125, 0.221160888671875, 0.99005126953125, 0.0558319091796875, 0.445465087890625, 0.2514495849609375, 0.82977294921875, 0.1630096435546875, 0.7925567626953125, 0.9678497314453125, 0.17333984375, 0.827423095703125, 0.5137786865234375, 0.5213623046875, 0.6866455078125, 0.04931640625, 0.8275604248046875, 0.0388336181640625, 0.4217529296875, 0.64544677734375, 0.9716339111328125, 0.16766357421875, 0.2076263427734375, 0.935638427734375, 0.942962646484375, 0.2053680419921875, 0.51776123046875, 0.1601409912109375, 0.78936767578125, 0.3179473876953125, 0.410797119140625, 0.0925140380859375, 0.254730224609375, 0.0164031982421875, 0.3323822021484375, 0.588226318359375, 0.40289306640625, 0.5465240478515625, 0.9807891845703125, 0.2598419189453125, 0.8328399658203125, 0.988037109375, 0.7383575439453125, 0.062713623046875, 0.1774444580078125, 0.766754150390625, 0.7375030517578125, 0.4016876220703125, 0.165313720703125, 0.658966064453125, 0.6543426513671875, 0.6108856201171875, 0.7650604248046875, 0.1142425537109375, 0.8770751953125, 0.4739227294921875, 0.9927825927734375, 0.75701904296875, 0.0761566162109375, 0.284942626953125, 0.3447723388671875, 0.8471527099609375, 0.09368896484375, 0.41253662109375, 0.9146728515625, 0.796478271484375, 0.019500732421875, 0.612457275390625, 0.282501220703125, 0.2343292236328125, 0.2452850341796875, 0.6839447021484375, 0.4651947021484375, 0.3048248291015625, 0.3599700927734375, 0.9756011962890625, 0.5931396484375, 0.9224853515625, 0.0950927734375, 0.6109771728515625, 0.0691375732421875, 0.6038665771484375, 0.9064483642578125, 0.301116943359375, 0.4510345458984375, 0.897705078125, 0.61578369140625, 0.042266845703125, 0.5784454345703125, 0.458587646484375, 0.071868896484375, 0.07769775390625, 0.726043701171875, 0.507293701171875, 0.53363037109375, 0.2313995361328125, 0.77728271484375, 0.8740234375, 0.277496337890625, 0.0861968994140625, 0.586181640625, 0.0958404541015625, 0.70477294921875, 0.540283203125, 0.4496917724609375, 0.3590545654296875, 0.4942779541015625, 0.94970703125, 0.5301513671875, 0.1484832763671875, 0.5065765380859375, 0.173492431640625, 0.6183319091796875, 0.933441162109375, 0.900970458984375, 0.6635894775390625, 0.501617431640625, 0.6783294677734375, 0.274993896484375, 0.4327239990234375, 0.451751708984375, 0.080108642578125, 0.592742919921875, 0.3372955322265625, 0.2841339111328125, 0.897125244140625, 0.3444976806640625, 0.1414337158203125, 0.0117340087890625, 0.1583404541015625, 0.505828857421875, 0.344879150390625, 0.303924560546875, 0.91925048828125, 0.521484375, 0.606292724609375, 0.8638458251953125, 0.0136260986328125, 0.375335693359375, 0.0915069580078125, 0.4259033203125, 0.4115142822265625, 0.8165435791015625, 0.694427490234375, 0.311676025390625, 0.92584228515625, 0.6000518798828125, 0.8647613525390625, 0.8614501953125, 0.925628662109375, 0.707977294921875, 0.924102783203125, 0.5610809326171875, 0.911865234375, 0.61151123046875, 0.328216552734375, 0.0144500732421875, 0.384307861328125, 0.5683135986328125, 0.3372802734375, 0.7735748291015625, 0.8875732421875, 0.4937591552734375, 0.117523193359375, 0.1896514892578125, 0.872406005859375, 0.2303009033203125, 0.74908447265625, 0.923065185546875, 0.8695068359375, 0.8942413330078125, 0.8323516845703125, 0.85400390625, 0.6038818359375, 0.3975830078125, 0.2654876708984375, 0.0854949951171875, 0.25775146484375, 0.4817657470703125, 0.52484130859375, 0.437347412109375, 0.5310821533203125, 0.2718963623046875, 0.13018798828125, 0.5862579345703125, 0.9207763671875, 0.30560302734375, 0.510955810546875, 0.372161865234375, 0.640655517578125, 0.0672149658203125, 0.9629058837890625, 0.42376708984375, 0.9235382080078125, 0.5281524658203125, 0.6244659423828125, 0.4725494384765625, 0.10955810546875, 0.3592071533203125, 0.94439697265625, 0.0574951171875, 0.21844482421875, 0.5822906494140625, 0.1847686767578125, 0.712921142578125, 0.9136505126953125, 0.8786468505859375, 0.543487548828125, 0.3113250732421875, 0.449859619140625, 0.0222625732421875, 0.1501312255859375, 0.1685943603515625, 0.5532379150390625, 0.2042999267578125, 0.00714111328125, 0.6375732421875, 0.1140899658203125, 0.3975677490234375, 0.08953857421875, 0.0986175537109375, 0.6983489990234375, 0.780609130859375, 0.4971160888671875, 0.3860931396484375, 0.6973114013671875, 0.390655517578125, 0.8115081787109375, 0.5759429931640625, 0.560028076171875, 0.9506988525390625, 0.6555023193359375, 0.654052734375, 0.2245635986328125, 0.33380126953125, 0.412078857421875, 0.7911224365234375, 0.9984130859375, 0.0339813232421875, 0.5908050537109375, 0.084991455078125, 0.7809600830078125, 0.1583251953125, 0.9991302490234375, 0.4550018310546875, 0.0430450439453125, 0.1183013916015625, 0.360015869140625, 0.0339508056640625, 0.079742431640625, 0.3923492431640625, 0.967987060546875, 0.718994140625, 0.3188629150390625, 0.0540618896484375, 0.7045745849609375, 0.6797332763671875, 0.2187042236328125, 0.035125732421875, 0.078887939453125, 0.3838348388671875, 0.00042724609375, 0.474273681640625, 0.0419769287109375, 0.241455078125, 0.04681396484375, 0.8987274169921875, 0.30609130859375, 0.5121002197265625, 0.532318115234375, 0.5501251220703125, 0.819000244140625, 0.503448486328125, 0.996429443359375, 0.712127685546875, 0.235595703125, 0.6299896240234375, 0.985992431640625, 0.45947265625, 0.858154296875, 0.3062744140625, 0.6239776611328125, 0.4664764404296875, 0.375, 0.3160552978515625, 0.1124725341796875, 0.13104248046875, 0.90130615234375, 0.7667694091796875, 0.7283935546875, 0.55340576171875, 0.1951141357421875, 0.4889984130859375, 0.077911376953125, 0.014129638671875, 0.9677734375, 0.7318878173828125, 0.3826751708984375, 0.8252410888671875, 0.842620849609375, 0.646240234375, 0.0371246337890625, 0.50714111328125, 0.6746978759765625, 0.85968017578125, 0.077545166015625, 0.0119476318359375, 0.65899658203125, 0.3598785400390625, 0.6954498291015625, 0.5529022216796875, 0.35247802734375, 0.181915283203125, 0.6823272705078125, 0.1467742919921875, 0.0484466552734375, 0.132965087890625, 0.644439697265625, 0.0106964111328125, 0.8582000732421875, 0.990386962890625, 0.5098114013671875, 0.383392333984375, 0.9500274658203125, 0.922393798828125, 0.503387451171875, 0.3568572998046875, 0.169525146484375, 0.12664794921875, 0.7766876220703125, 0.1847686767578125, 0.6686553955078125, 0.12298583984375, 0.110809326171875, 0.6234588623046875, 0.613983154296875, 0.73876953125, 0.389404296875, 0.5343780517578125, 0.0450286865234375, 0.2811737060546875, 0.0392303466796875, 0.412994384765625, 0.134735107421875, 0.8414764404296875, 0.6102752685546875, 0.4432373046875, 0.449310302734375, 0.0461273193359375, 0.1351318359375, 0.83154296875, 0.0412750244140625, 0.1289520263671875, 0.84344482421875, 0.9609222412109375, 0.6594696044921875, 0.3051910400390625, 0.46490478515625, 0.6685028076171875, 0.712005615234375, 0.59503173828125, 0.4762420654296875, 0.6778717041015625, 0.354034423828125, 0.938446044921875, 0.245880126953125, 0.05279541015625, 0.4730377197265625, 0.6990814208984375, 0.3607177734375, 0.0609130859375, 0.5414276123046875, 0.7835845947265625, 0.31494140625, 0.545440673828125, 0.12579345703125, 0.9237213134765625, 0.6337738037109375, 0.36865234375, 0.3592376708984375, 0.7582550048828125, 0.643218994140625, 0.2469635009765625, 0.1815948486328125, 0.286224365234375, 0.78057861328125, 0.9033050537109375, 0.559967041015625, 0.1581268310546875, 0.7071075439453125, 0.489776611328125, 0.7304840087890625, 0.6551666259765625, 0.6713104248046875, 0.7598114013671875, 0.22747802734375, 0.4691925048828125, 0.910064697265625, 0.8920135498046875, 0.5293731689453125, 0.8050384521484375, 0.8960418701171875, 0.5482330322265625, 0.0866546630859375, 0.38507080078125, 0.8973236083984375, 0.9005584716796875, 0.7334136962890625, 0.6103973388671875, 0.989349365234375, 0.723480224609375, 0.783416748046875, 0.895965576171875, 0.6492156982421875, 0.744232177734375, 0.773040771484375, 0.2363739013671875, 0.4725494384765625, 0.0011138916015625, 0.253692626953125, 0.38037109375, 0.0622406005859375, 0.6838226318359375, 0.767242431640625, 0.4735565185546875, 0.200927734375, 0.043609619140625, 0.278076171875, 0.2557830810546875, 0.956573486328125, 0.8874969482421875, 0.0506591796875, 0.2396240234375, 0.62567138671875, 0.1761016845703125, 0.2968597412109375, 0.6369171142578125, 0.7568359375, 0.238433837890625, 0.474365234375, 0.2530059814453125, 0.59967041015625, 0.0167694091796875, 0.71307373046875, 0.8382568359375, 0.4588165283203125, 0.9853668212890625, 0.7744293212890625], "dims": [1, 1, 28, 28], "type": "f32"}}, {"memref": {"data": [0.22509765625, 0.5113067626953125, 0.249114990234375, 0.037506103515625, 0.5478363037109375, 0.3442840576171875, 0.6310882568359375, 0.31146240234375, 0.0030975341796875, 0.3155670166015625, 0.8818359375, 0.5511627197265625, 0.3525848388671875, 0.9006195068359375, 0.5926666259765625, 0.95513916015625, 0.95294189453125, 0.7583465576171875, 0.8865966796875, 0.743133544921875, 0.5251617431640625, 0.449981689453125, 0.9610137939453125, 0.8299407958984375, 0.962127685546875, 0.150360107421875, 0.1475067138671875, 0.99407958984375, 0.9848785400390625, 0.4261322021484375, 0.6666259765625, 0.39654541015625, 0.2029876708984375, 0.0996246337890625, 0.5962066650390625, 0.1461639404296875, 0.9430389404296875, 0.2412109375, 0.001739501953125, 0.51617431640625, 0.519256591796875, 0.13299560546875, 0.1068267822265625, 0.7566070556640625, 0.0511322021484375, 0.3358154296875, 0.3949127197265625, 0.7443389892578125, 0.455810546875, 0.721405029296875, 0.54339599609375, 0.716522216796875, 0.488800048828125, 0.3279266357421875, 0.43780517578125, 0.7744598388671875, 0.0359649658203125, 0.8876953125, 0.11761474609375, 0.2526397705078125, 0.536895751953125, 0.115875244140625, 0.24066162109375, 0.42486572265625, 0.6780853271484375, 0.5341796875, 0.362152099609375, 0.9764556884765625, 0.0481414794921875, 0.19921875, 0.0309906005859375, 0.578765869140625, 0.5066375732421875, 0.6436920166015625, 0.3426513671875, 0.3076629638671875, 0.3058929443359375, 0.98394775390625, 0.333709716796875, 0.241058349609375, 0.7490997314453125, 0.6960906982421875, 0.4368896484375, 0.6335601806640625, 0.6469268798828125, 0.7958984375, 0.6322021484375, 0.366546630859375, 0.0526123046875, 0.9398956298828125, 0.6228179931640625, 0.8600311279296875, 0.457855224609375, 0.36370849609375, 0.0552978515625, 0.232391357421875, 0.9839324951171875, 0.354888916015625, 0.886871337890625, 0.4459991455078125, 0.2446136474609375, 0.51715087890625, 0.638519287109375, 0.980560302734375, 0.9338836669921875, 0.52392578125, 0.4158477783203125, 0.1012115478515625, 0.7949981689453125, 0.8436126708984375, 0.111846923828125, 0.87335205078125, 0.6586456298828125, 0.530181884765625, 0.09326171875, 0.3079833984375, 0.7140350341796875, 0.9462432861328125, 0.2272491455078125, 0.2993011474609375, 0.42303466796875, 0.30010986328125, 0.6833343505859375, 0.674346923828125, 0.7377777099609375, 0.095184326171875, 0.4410400390625, 0.914306640625, 0.8369598388671875, 0.8256988525390625, 0.688140869140625, 0.7747802734375, 0.2247467041015625, 0.4765777587890625, 0.985076904296875, 0.516571044921875, 0.1398468017578125, 0.61395263671875, 0.2231292724609375, 0.49139404296875, 0.827545166015625, 0.0922393798828125, 0.030609130859375, 0.1636199951171875, 0.852203369140625, 0.5059356689453125, 0.8860626220703125, 0.306915283203125, 0.4005889892578125, 0.152008056640625, 0.1327362060546875, 0.2166900634765625, 0.0771942138671875, 0.302093505859375, 0.5401153564453125, 0.28118896484375, 0.027740478515625, 0.095916748046875, 0.9141845703125, 0.3026885986328125, 0.7825469970703125, 0.164093017578125, 0.7434844970703125, 0.8433380126953125, 0.51715087890625, 0.1119842529296875, 0.9866485595703125, 0.47076416015625, 0.522674560546875, 0.507293701171875, 0.4861297607421875, 0.3503875732421875, 0.1067657470703125, 0.2856597900390625, 0.0176544189453125, 0.4741973876953125, 0.3647613525390625, 0.3728179931640625, 0.534149169921875, 0.2861785888671875, 0.6886444091796875, 0.6240081787109375, 0.5797882080078125, 0.3848876953125, 0.1718597412109375, 0.66607666015625, 0.8142242431640625, 0.7795562744140625, 0.6575775146484375, 0.961700439453125, 0.202392578125, 0.7230224609375, 0.087371826171875, 0.45062255859375, 0.3162994384765625, 0.0244598388671875, 0.3915252685546875, 0.8670501708984375, 0.3325347900390625, 0.594390869140625], "dims": [8, 1, 5, 5], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.onnx b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.onnx new file mode 100644 index 0000000..a0a6888 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.onnx @@ -0,0 +1,28 @@ + :� + +in_a +in_bout_a"Conv* +auto_pad" +SAME_UPPER�* + dilations@@�* +group�* + kernel_shape@@�* +strides@@�ConvMnist12FirstZ +in_a + + + + +Z +in_b + + + + +b +out_a + + + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.res b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.res new file mode 100644 index 0000000..493628c --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12First.res @@ -0,0 +1,3 @@ +Result: +memref<1x8x28x28xf32>[3.245746374130249, 4.673293590545654, 5.471578121185303, 5.9055376052856445, 6.172016143798828, 5.751838684082031, 5.7723612785339355, 5.551643371582031, 5.351251602172852, 4.852319240570068, 4.6132707595825195, 4.4319047927856445, 5.191045761108398, 5.396459102630615, 5.413271903991699, 5.555306434631348, 5.317206382751465, 5.877570152282715, 5.514462471008301, 6.437507629394531, 5.608894348144531, 6.662117004394531, 6.248251438140869, 7.1109747886657715, 7.095271587371826, 7.164897918701172, 5.2392897605896, 3.899286985397339, 3.8931961059570312, 5.128921031951904, 6.7218546867370605, 6.992149829864502, 7.6180500984191895, 6.94720458984375, 6.719822883605957, 6.292654991149902, 6.259860515594482, 4.945328712463379, 5.126302242279053, 5.016197204589844, 5.731057167053223, 6.366847515106201, 7.428122043609619, 6.277190208435059, 6.52724552154541, 6.951771259307861, 5.639443397521973, 6.514171600341797, 6.118029594421387, 6.611729145050049, 5.837472438812256, 6.807513236999512, 7.008824348449707, 6.76378059387207, 5.293382167816162, 4.221248626708984, 4.950562000274658, 6.408134460449219, 8.235867500305176, 8.456031799316406, 8.659675598144531, 8.763097763061523, 9.112444877624512, 7.995570182800293, 8.426080703735352, 6.793140888214111, 6.692502975463867, 6.463100433349609, 6.4787092208862305, 7.043283462524414, 7.7465362548828125, 7.428025245666504, 6.7718305587768555, 7.289878845214844, 6.624485015869141, 5.975083351135254, 6.575571060180664, 6.60473108291626, 6.067473888397217, 6.584317207336426, 7.319040298461914, 7.2839579582214355, 6.110110282897949, 4.709888935089111, 5.064676761627197, 6.430952548980713, 7.580483913421631, 7.672875881195068, 7.824098110198975, 7.856839179992676, 8.999512672424316, 8.011865615844727, 8.543863296508789, 7.915115833282471, 7.1325836181640625, 6.378785610198975, 6.4113640785217285, 6.360395908355713, 5.961641311645508, 6.895923137664795, 6.520810604095459, 7.328647613525391, 6.81752872467041, 6.379197597503662, 6.46733283996582, 6.740900039672852, 5.9941325187683105, 7.445080757141113, 7.177918434143066, 6.502864360809326, 5.655532360076904, 4.795580863952637, 4.872890472412109, 6.587594509124756, 7.951569557189941, 7.693426609039307, 7.755792140960693, 7.764856338500977, 8.322197914123535, 8.217667579650879, 8.066919326782227, 8.451423645019531, 6.8957061767578125, 5.808130741119385, 6.437561988830566, 6.719426155090332, 6.477588176727295, 6.915194988250732, 6.20846700668335, 6.810104846954346, 5.176580429077148, 6.238290309906006, 7.222129821777344, 7.226418495178223, 7.171429634094238, 7.467812538146973, 7.905893325805664, 7.037604808807373, 5.545236110687256, 4.20177698135376, 4.107375144958496, 5.781687259674072, 7.0392537117004395, 6.8429059982299805, 6.801906585693359, 7.251368522644043, 7.3286638259887695, 7.8032989501953125, 7.413755893707275, 8.17349624633789, 6.60054349899292, 6.50515079498291, 6.473034858703613, 6.986408710479736, 6.898784160614014, 6.453479290008545, 6.6884355545043945, 6.825777053833008, 5.408612251281738, 5.788886547088623, 6.937364101409912, 5.909252166748047, 8.448148727416992, 8.625365257263184, 8.105191230773926, 7.581021308898926, 6.653982162475586, 4.488173961639404, 3.930647373199463, 4.96663236618042, 6.8967390060424805, 5.922971248626709, 6.113697528839111, 6.6861701011657715, 7.758299827575684, 7.167253017425537, 7.578663349151611, 7.290247917175293, 6.29123592376709, 6.51233434677124, 6.952820777893066, 6.969552040100098, 6.5372490882873535, 5.97708797454834, 6.305176258087158, 5.836363315582275, 5.075307846069336, 5.6606950759887695, 6.38545036315918, 5.981616020202637, 6.426693916320801, 7.933002471923828, 8.240459442138672, 7.9454827308654785, 6.726651668548584, 5.084559917449951, 4.589956283569336, 5.578915119171143, 5.967765808105469, 5.743651866912842, 6.00252628326416, 6.902280807495117, 7.2501325607299805, 7.574096202850342, 8.811775207519531, 8.01489543914795, 6.524374485015869, 5.905817031860352, 5.579607009887695, 5.768674850463867, 5.692854881286621, 6.001657485961914, 6.865303039550781, 6.532317638397217, 6.240306854248047, 6.3133649826049805, 6.31354284286499, 6.128620624542236, 6.1064863204956055, 6.555109977722168, 7.306004524230957, 7.5390496253967285, 6.3794755935668945, 4.842015743255615, 4.233924865722656, 5.689870357513428, 6.612295150756836, 6.341566562652588, 6.15861177444458, 6.315838813781738, 6.457907676696777, 7.524410247802734, 8.257591247558594, 7.758233070373535, 6.237045764923096, 6.973139762878418, 6.463350296020508, 5.851536273956299, 5.6792683601379395, 5.877779960632324, 6.498419761657715, 6.603994369506836, 6.40741491317749, 6.392540454864502, 7.22731876373291, 7.255409240722656, 6.114327907562256, 6.247013568878174, 7.302313327789307, 7.44953727722168, 6.108958721160889, 5.4681854248046875, 4.824853420257568, 5.554999828338623, 6.492994785308838, 6.649320602416992, 6.265153884887695, 6.440769195556641, 6.5194244384765625, 7.797850608825684, 8.455379486083984, 8.426111221313477, 6.8418378829956055, 7.2086920738220215, 6.7942633628845215, 5.446385860443115, 6.2791547775268555, 6.234987258911133, 6.9322428703308105, 5.882560729980469, 6.2422614097595215, 6.238968849182129, 6.74263334274292, 5.963375091552734, 5.679494857788086, 5.905910015106201, 6.678243160247803, 6.894748210906982, 5.8081793785095215, 5.421652793884277, 5.3593621253967285, 5.914778709411621, 7.800042629241943, 6.627086162567139, 6.75178861618042, 5.716244697570801, 7.221732139587402, 8.379395484924316, 8.638312339782715, 8.366781234741211, 8.124720573425293, 8.180603981018066, 7.795933246612549, 6.0906171798706055, 6.095081806182861, 6.113717079162598, 6.772883892059326, 6.2104082107543945, 6.407150745391846, 6.114597320556641, 7.0818328857421875, 5.989265441894531, 5.833014488220215, 6.397765636444092, 6.509888648986816, 6.472579002380371, 5.513911247253418, 4.197304725646973, 5.277220726013184, 5.707357406616211, 6.887436866760254, 5.824032306671143, 6.182653427124023, 5.547090530395508, 6.55341100692749, 8.547574043273926, 8.46651554107666, 8.216063499450684, 9.486809730529785, 8.593764305114746, 8.163145065307617, 7.256593704223633, 6.463339328765869, 6.805810451507568, 6.787206649780273, 6.223752975463867, 7.0075273513793945, 6.5263471603393555, 6.788042068481445, 6.7013959884643555, 7.238714694976807, 6.732205867767334, 7.130218505859375, 6.94600248336792, 5.719285011291504, 3.954381227493286, 4.693536281585693, 5.861459255218506, 6.450134754180908, 5.751266956329346, 5.0618510246276855, 5.266858100891113, 6.166001796722412, 7.628509521484375, 7.751491546630859, 7.660827159881592, 8.293380737304688, 8.710793495178223, 7.63678503036499, 6.9920454025268555, 6.973878860473633, 7.211851596832275, 6.409440517425537, 6.3511505126953125, 7.320328712463379, 8.169934272766113, 7.017820358276367, 7.407271385192871, 7.402998447418213, 7.085100173950195, 7.23366117477417, 7.951107978820801, 5.628748893737793, 4.1664323806762695, 5.127938270568848, 5.958828926086426, 7.100573539733887, 6.328994274139404, 4.859841346740723, 4.575664043426514, 6.6873345375061035, 7.113104343414307, 7.135958194732666, 8.283855438232422, 8.170260429382324, 8.04937744140625, 8.137005805969238, 6.275918006896973, 6.866993427276611, 6.132324695587158, 6.597658157348633, 6.595847129821777, 6.883546829223633, 7.025257110595703, 7.643204689025879, 8.018232345581055, 7.302521228790283, 6.665584087371826, 7.123599052429199, 7.418680667877197, 5.048275947570801, 3.766299247741699, 6.031535625457764, 6.453943252563477, 8.109134674072266, 7.68269157409668, 5.983201503753662, 4.808120250701904, 6.2031683921813965, 6.827668190002441, 5.832198143005371, 6.5040106773376465, 7.813730716705322, 7.5813822746276855, 6.9065961837768555, 6.504888534545898, 6.871788501739502, 5.463529109954834, 4.722110748291016, 5.907474994659424, 6.7721734046936035, 7.0858306884765625, 7.6981706619262695, 8.385400772094727, 8.275218963623047, 7.03950309753418, 7.740206241607666, 6.739408493041992, 4.1292619705200195, 3.2497074604034424, 5.604170799255371, 7.168092727661133, 8.223301887512207, 8.530256271362305, 7.023045539855957, 6.744765758514404, 7.4091081619262695, 7.685059547424316, 7.265817642211914, 7.9683942794799805, 8.095813751220703, 8.706450462341309, 8.212231636047363, 6.834059238433838, 6.237278461456299, 5.998911380767822, 4.791138172149658, 5.179847240447998, 5.775720596313477, 7.352189540863037, 8.097280502319336, 7.877941131591797, 8.058549880981445, 7.383170127868652, 6.904993057250977, 6.841363430023193, 4.5782790184021, 3.659031391143799, 6.01140022277832, 8.061182022094727, 9.711030006408691, 9.633047103881836, 8.37915325164795, 7.657278537750244, 7.808382034301758, 7.192092418670654, 6.519164085388184, 8.199049949645996, 7.860004425048828, 7.811483860015869, 7.871191024780273, 6.988123893737793, 6.189089775085449, 6.103025913238525, 5.606784820556641, 5.800333023071289, 5.586803913116455, 7.689844131469727, 7.524491786956787, 7.889787673950195, 7.371267318725586, 8.375809669494629, 7.121057510375977, 7.032691955566406, 5.495236396789551, 4.294001579284668, 4.993997573852539, 7.395516872406006, 9.218534469604492, 8.904268264770508, 8.273324012756348, 7.531380653381348, 7.418594837188721, 7.258885383605957, 7.7684736251831055, 7.8738908767700195, 8.01938533782959, 8.295793533325195, 7.113762855529785, 6.215733528137207, 5.663148880004883, 5.684455871582031, 5.1908674240112305, 4.920603275299072, 5.720713138580322, 6.88852596282959, 6.4162492752075195, 6.240760803222656, 6.542366027832031, 6.843701362609863, 7.639904499053955, 7.436084270477295, 5.922867774963379, 4.820797920227051, 4.760829925537109, 7.181192398071289, 8.593840599060059, 8.788187980651855, 8.596107482910156, 8.173402786254883, 7.500543594360352, 7.123918056488037, 7.681277751922607, 7.355381965637207, 7.658594131469727, 8.650347709655762, 7.295240879058838, 6.226734638214111, 5.294670104980469, 6.216367244720459, 4.667510986328125, 5.0775980949401855, 6.010189533233643, 6.888293743133545, 4.994832992553711, 5.581227779388428, 5.903470516204834, 5.15349817276001, 5.551025390625, 6.877346992492676, 5.646128177642822, 5.159024715423584, 3.8283767700195312, 6.23129415512085, 7.900754451751709, 7.550964832305908, 7.606047630310059, 7.786390781402588, 6.785353183746338, 6.865598201751709, 7.263911247253418, 6.453124523162842, 6.753222942352295, 6.862797737121582, 7.0895280838012695, 6.097214221954346, 6.364490032196045, 6.189844608306885, 5.416541576385498, 6.123170375823975, 7.055495262145996, 7.874094009399414, 6.338788032531738, 6.723807334899902, 5.562260150909424, 5.734104156494141, 6.025895118713379, 7.287896156311035, 5.856670379638672, 5.301233291625977, 4.138138294219971, 6.084939956665039, 7.340357780456543, 6.741861820220947, 6.460153579711914, 6.899113178253174, 6.418910026550293, 6.275829315185547, 6.270570278167725, 6.066679954528809, 6.222214698791504, 5.788144588470459, 5.437349319458008, 5.329122543334961, 6.479364395141602, 6.790892601013184, 6.556674480438232, 7.742391586303711, 8.489235877990723, 7.573596477508545, 6.895123481750488, 7.594854354858398, 6.832147121429443, 6.571443557739258, 6.098701000213623, 6.8644490242004395, 6.221322059631348, 4.8590545654296875, 3.724153518676758, 5.5784592628479, 6.373055458068848, 6.233404636383057, 5.497451305389404, 5.219754219055176, 5.343408107757568, 5.914251804351807, 5.855141639709473, 6.855906009674072, 6.863862037658691, 6.646998882293701, 5.61927604675293, 6.85441780090332, 7.22793436050415, 7.034757137298584, 7.386790752410889, 7.933021068572998, 7.647572994232178, 6.94921350479126, 7.427095413208008, 7.399446487426758, 5.961663246154785, 6.562929153442383, 6.221341133117676, 6.4920172691345215, 5.524959564208984, 4.196002960205078, 4.37242317199707, 5.453054428100586, 6.130614757537842, 5.498729705810547, 5.500332832336426, 4.826688766479492, 5.753830909729004, 5.704403877258301, 5.986777305603027, 6.293689727783203, 6.694665908813477, 6.38477897644043, 5.6417036056518555, 6.719481468200684, 7.398159027099609, 7.140135765075684, 7.808154582977295, 9.345932006835938, 7.966217041015625, 7.189823627471924, 7.119218826293945, 7.3280863761901855, 7.156578540802002, 6.551750659942627, 6.133574485778809, 7.0702433586120605, 5.278201580047607, 3.724668502807617, 4.005452632904053, 5.1569719314575195, 6.2536797523498535, 5.4217352867126465, 4.932713031768799, 4.35427713394165, 4.8180341720581055, 5.3604960441589355, 6.069350719451904, 5.834300994873047, 7.450253486633301, 6.440988063812256, 6.40685510635376, 6.528076648712158, 6.829999923706055, 7.228272914886475, 8.013328552246094, 7.7325310707092285, 7.050671100616455, 7.822834491729736, 8.224678993225098, 7.483436584472656, 7.412891387939453, 7.648548603057861, 7.273336887359619, 8.363409042358398, 5.413875102996826, 4.23104190826416, 4.458571434020996, 5.412578105926514, 6.872757911682129, 6.099973678588867, 5.806909084320068, 6.20017671585083, 7.078516960144043, 7.380558013916016, 7.291569709777832, 7.058951377868652, 7.4511847496032715, 6.468315601348877, 7.087775230407715, 8.075982093811035, 7.503972053527832, 8.005182266235352, 9.340435981750488, 8.833853721618652, 8.302138328552246, 8.303180694580078, 8.357856750488281, 8.502567291259766, 7.837320327758789, 7.751940727233887, 7.292454242706299, 6.864633560180664, 4.306601524353027, 3.91752552986145, 4.13397741317749, 5.619109153747559, 7.634017467498779, 6.956473350524902, 5.937379360198975, 5.580355644226074, 6.723324775695801, 7.5703253746032715, 7.1977691650390625, 7.675291538238525, 7.575139045715332, 7.387037754058838, 7.066615581512451, 6.63247013092041, 8.033302307128906, 9.159099578857422, 8.32309627532959, 7.858243465423584, 8.02357006072998, 8.758758544921875, 7.381851673126221, 8.16732406616211, 7.6769304275512695, 8.023324012756348, 8.438742637634277, 7.454840660095215, 5.478281021118164, 4.423144817352295, 2.9388267993927, 4.340745449066162, 5.042966365814209, 4.700437545776367, 5.258940696716309, 4.619376182556152, 4.685744762420654, 5.171427249908447, 5.919382095336914, 5.526602268218994, 5.339514255523682, 5.72309684753418, 5.246913433074951, 4.1290602684021, 5.301133632659912, 6.500833511352539, 5.983888626098633, 6.019512176513672, 6.420572280883789, 6.511574745178223, 5.416671276092529, 5.736937046051025, 6.0773606300354, 6.105762481689453, 5.984587669372559, 5.954293251037598, 4.584591865539551, 3.7933430671691895, 1.313283920288086, 2.801082134246826, 3.367966413497925, 2.7420156002044678, 2.710066318511963, 2.892883777618408, 3.0216891765594482, 2.872098922729492, 3.5334856510162354, 3.2415764331817627, 3.3725860118865967, 3.665973424911499, 2.8561739921569824, 2.387580633163452, 3.4900214672088623, 3.9968984127044678, 3.1757709980010986, 3.308424472808838, 3.7097532749176025, 3.552853584289551, 3.1142289638519287, 3.2128498554229736, 3.521718978881836, 4.070544242858887, 3.34397554397583, 4.043186187744141, 2.9642632007598877, 2.0547292232513428, 1.4342278242111206, 2.5256311893463135, 2.7087104320526123, 3.1007847785949707, 3.924211263656616, 2.7476320266723633, 3.0038692951202393, 2.6279125213623047, 3.251373291015625, 2.7630395889282227, 1.9428043365478516, 2.7888782024383545, 2.089122772216797, 2.865342140197754, 3.4858970642089844, 2.723778247833252, 2.7466988563537598, 3.326561212539673, 2.6405060291290283, 3.1374382972717285, 3.4203948974609375, 3.646399736404419, 2.9685723781585693, 3.592667818069458, 3.6514992713928223, 3.636547565460205, 2.7242116928100586, 2.378293991088867, 2.657290458679199, 3.324816942214966, 4.437955856323242, 4.943543434143066, 4.345223426818848, 4.509459018707275, 4.476222991943359, 4.171444892883301, 4.459682464599609, 2.9215025901794434, 4.002264022827148, 3.313349962234497, 4.239601135253906, 4.207329273223877, 4.475627422332764, 4.3128886222839355, 3.8925881385803223, 3.878074884414673, 3.986976385116577, 4.090061664581299, 3.592552900314331, 4.06309700012207, 4.466980934143066, 4.147709846496582, 4.5374064445495605, 4.200003147125244, 3.4177985191345215, 2.536257743835449, 3.857011556625366, 5.200902938842773, 6.20322322845459, 5.901063919067383, 6.064961910247803, 6.251226902008057, 7.036386013031006, 6.474725246429443, 5.859898090362549, 5.5787787437438965, 5.028482913970947, 5.223626136779785, 5.679917335510254, 5.568687438964844, 4.65883207321167, 4.6587419509887695, 4.856780529022217, 4.833342552185059, 5.277370452880859, 5.581661701202393, 5.9481120109558105, 5.356356143951416, 4.677102088928223, 5.731882095336914, 6.1183977127075195, 5.664245128631592, 4.781909465789795, 3.6500062942504883, 4.006626129150391, 5.072906494140625, 4.887569904327393, 4.807270526885986, 5.540212154388428, 6.292020320892334, 5.869675636291504, 5.115739345550537, 5.472559928894043, 5.064639091491699, 5.310510635375977, 4.043722152709961, 4.258594989776611, 4.706425189971924, 4.615245342254639, 5.203155994415283, 4.812673091888428, 6.481915473937988, 4.444293975830078, 5.001681804656982, 4.915751934051514, 6.100075721740723, 5.129909515380859, 5.640956401824951, 5.872178077697754, 5.8138933181762695, 3.878995180130005, 2.821808338165283, 3.6127991676330566, 4.7426371574401855, 5.882112503051758, 6.362163543701172, 6.110854148864746, 5.911978244781494, 5.744821071624756, 5.961874961853027, 5.796873569488525, 5.389482021331787, 4.473684310913086, 4.175826549530029, 4.423028469085693, 4.634125232696533, 6.349362373352051, 5.284908771514893, 4.747158527374268, 5.616109371185303, 4.1585893630981445, 4.630353927612305, 4.808999061584473, 4.180232524871826, 5.316717624664307, 6.196547508239746, 4.848646640777588, 4.9709601402282715, 4.697750568389893, 3.1099750995635986, 3.241739273071289, 4.368809700012207, 6.159622669219971, 5.526994705200195, 5.056423664093018, 5.087591171264648, 6.458029747009277, 5.643670558929443, 5.452298164367676, 6.06498384475708, 4.199379920959473, 5.441595554351807, 5.621547698974609, 5.589305877685547, 5.358931064605713, 4.892926216125488, 5.019083499908447, 3.903714418411255, 4.6105146408081055, 4.676116466522217, 4.8674845695495605, 4.504212856292725, 4.573349475860596, 5.338791847229004, 6.980858325958252, 5.257374286651611, 4.0723137855529785, 2.932872772216797, 3.991678476333618, 4.788534164428711, 5.185369968414307, 4.367805004119873, 5.401029109954834, 5.821368217468262, 6.372326850891113, 5.367761611938477, 6.460203647613525, 5.36076545715332, 5.755825519561768, 4.611608028411865, 4.902782440185547, 4.867377758026123, 4.192975997924805, 4.797906875610352, 4.812564849853516, 4.4908905029296875, 3.3620333671569824, 4.127225399017334, 4.260462284088135, 4.731983184814453, 5.145303249359131, 5.309492111206055, 5.045153617858887, 6.4910054206848145, 5.231293201446533, 3.12572979927063, 3.7875518798828125, 4.624070644378662, 4.48922061920166, 4.292433261871338, 4.306361198425293, 5.115264892578125, 5.384403228759766, 6.545054912567139, 5.986813545227051, 6.334843158721924, 5.099177360534668, 4.274023056030273, 4.038922309875488, 3.6918132305145264, 4.133428573608398, 4.216543197631836, 4.885721206665039, 5.153420925140381, 5.6458048820495605, 4.9233927726745605, 5.0211100578308105, 4.835606575012207, 4.964938640594482, 5.485220909118652, 5.6758294105529785, 5.519680976867676, 4.247098445892334, 3.573641061782837, 3.582382917404175, 3.5726523399353027, 4.967340469360352, 5.138755798339844, 4.507293701171875, 4.741781711578369, 4.3267645835876465, 5.6403093338012695, 5.693410873413086, 5.571740627288818, 3.950713872909546, 4.747586727142334, 4.5490217208862305, 5.655239582061768, 4.8531494140625, 5.447052001953125, 4.687251567840576, 3.9948549270629883, 3.7329277992248535, 4.531567573547363, 5.6669745445251465, 5.614843845367432, 5.51007604598999, 5.361396312713623, 5.991395950317383, 5.3418354988098145, 4.673507213592529, 3.603748083114624, 3.286005973815918, 4.2267231941223145, 4.501486778259277, 4.675309181213379, 4.527532577514648, 4.639321804046631, 5.169174671173096, 5.377771854400635, 6.381146430969238, 5.8446550369262695, 5.53354024887085, 5.327621936798096, 5.119339466094971, 3.9613616466522217, 4.814401149749756, 4.122565746307373, 5.006632328033447, 4.883770942687988, 4.18452787399292, 3.8135855197906494, 5.3369951248168945, 4.308038711547852, 3.488996982574463, 4.763376712799072, 5.315089225769043, 5.2602643966674805, 4.646914005279541, 3.6655406951904297, 4.361501216888428, 4.120309829711914, 5.461221694946289, 4.431291580200195, 5.249513149261475, 4.5154314041137695, 5.352273464202881, 6.655351638793945, 6.119077205657959, 5.448284149169922, 5.99904203414917, 5.629233360290527, 4.980848789215088, 5.1401519775390625, 4.923891544342041, 4.084290981292725, 4.30660343170166, 4.140225410461426, 5.489852428436279, 4.889563083648682, 4.6182942390441895, 4.44814395904541, 4.659685134887695, 4.62755012512207, 5.2647552490234375, 4.880144119262695, 4.115538597106934, 3.167306423187256, 4.007909774780273, 5.180248737335205, 5.0074567794799805, 3.8080506324768066, 3.8044657707214355, 4.590616226196289, 5.638444423675537, 5.9117279052734375, 6.732012748718262, 6.105971813201904, 6.19973087310791, 6.057303428649902, 5.590669631958008, 4.0672287940979, 4.32271671295166, 5.806257247924805, 4.914259433746338, 4.994979381561279, 5.126789569854736, 5.989638805389404, 4.81342077255249, 4.50982666015625, 5.175912857055664, 4.765414714813232, 5.123859405517578, 5.7490057945251465, 3.952897310256958, 2.8919179439544678, 3.580115556716919, 4.147702693939209, 4.7521162033081055, 5.503546714782715, 3.8960161209106445, 3.8136184215545654, 4.556443691253662, 5.589436054229736, 4.93715238571167, 7.2186408042907715, 5.210457801818848, 4.953751087188721, 6.445377826690674, 5.320422649383545, 4.93760347366333, 4.279982566833496, 4.803506374359131, 5.343830108642578, 5.094262599945068, 5.048190116882324, 5.606112957000732, 6.42350435256958, 4.611116409301758, 4.5028181076049805, 4.970742225646973, 6.167238712310791, 4.807075023651123, 3.1288957595825195, 5.1251935958862305, 4.514458179473877, 5.215813636779785, 4.363257884979248, 4.771864891052246, 3.7194266319274902, 4.535834312438965, 6.110866546630859, 6.291038990020752, 5.480140686035156, 7.047543525695801, 6.423540115356445, 4.710734844207764, 5.196047782897949, 5.950042724609375, 4.536491394042969, 4.6400299072265625, 4.211897850036621, 5.774548530578613, 4.398563385009766, 4.77561092376709, 4.939208507537842, 5.5646820068359375, 4.3404927253723145, 5.337988376617432, 5.412621021270752, 3.519268274307251, 2.9047436714172363, 4.4336771965026855, 5.526845455169678, 5.724758625030518, 4.793391704559326, 4.359426021575928, 4.114391803741455, 4.943637847900391, 4.621212959289551, 5.374317169189453, 5.47699499130249, 5.410868167877197, 5.8844685554504395, 5.97264289855957, 4.680211067199707, 4.4333624839782715, 4.698514461517334, 4.143804550170898, 3.898850917816162, 4.70353889465332, 6.000219821929932, 5.795048713684082, 5.5431294441223145, 6.570700168609619, 5.784799575805664, 5.885611534118652, 4.386651992797852, 3.520772695541382, 2.186234951019287, 3.935459613800049, 4.51131534576416, 5.868591785430908, 5.427322864532471, 3.9400103092193604, 4.758967399597168, 5.865738868713379, 5.967095375061035, 4.987773895263672, 6.941102981567383, 6.586896896362305, 6.252148151397705, 6.369195938110352, 6.223535537719727, 4.701355457305908, 3.5220136642456055, 4.042928218841553, 5.280365467071533, 4.5220818519592285, 5.275882720947266, 5.858675956726074, 6.30442476272583, 5.3885273933410645, 6.135965347290039, 5.103445053100586, 5.1050920486450195, 3.7908544540405273, 2.990323305130005, 5.055999755859375, 5.469115257263184, 6.561892986297607, 6.557490348815918, 6.032867431640625, 5.003705978393555, 5.15324068069458, 5.155661582946777, 5.2572526931762695, 4.744820594787598, 5.127491474151611, 5.815060615539551, 4.624300479888916, 4.319372177124023, 5.217080593109131, 4.671524524688721, 4.171456813812256, 4.324418544769287, 4.714064121246338, 6.2001776695251465, 5.627101898193359, 5.877801895141602, 5.231933116912842, 5.180931091308594, 5.819149017333984, 5.966578006744385, 4.049984931945801, 2.7841200828552246, 4.338515281677246, 5.412231922149658, 5.545457363128662, 6.479458808898926, 5.713488578796387, 4.607799530029297, 5.0021820068359375, 5.11652946472168, 6.077089309692383, 6.01586389541626, 5.666799068450928, 6.077418327331543, 5.919900417327881, 4.37978458404541, 3.5340590476989746, 4.286708831787109, 3.8589730262756348, 2.963869571685791, 4.572480201721191, 4.871179103851318, 4.618599891662598, 4.46913480758667, 5.891774654388428, 5.390613079071045, 4.498926639556885, 4.96621036529541, 4.338219165802002, 2.500711441040039, 4.256746292114258, 6.278072357177734, 6.971315860748291, 6.441717147827148, 6.512909889221191, 6.657951354980469, 5.389001369476318, 5.688850402832031, 5.443489074707031, 5.195591449737549, 5.560319900512695, 6.178038120269775, 5.91812801361084, 5.381007671356201, 3.8579909801483154, 4.193656921386719, 3.09369158744812, 4.364684581756592, 4.449458122253418, 5.276288986206055, 4.434325695037842, 4.957762718200684, 4.560708999633789, 4.525683879852295, 4.4564714431762695, 4.348419666290283, 3.629988431930542, 3.178788900375366, 3.5916926860809326, 5.17716646194458, 5.97481107711792, 5.903467655181885, 6.129261493682861, 5.63693904876709, 5.346917152404785, 5.519898414611816, 5.383152008056641, 5.244011878967285, 5.461286544799805, 5.476160049438477, 5.615625381469727, 4.421718120574951, 4.9144487380981445, 4.142276287078857, 3.8407680988311768, 4.411857604980469, 5.773454666137695, 6.043703079223633, 5.123478889465332, 5.861189365386963, 4.329992294311523, 4.793496131896973, 4.502829551696777, 5.850396633148193, 4.9408111572265625, 4.168088912963867, 3.9417436122894287, 5.271426677703857, 6.091158390045166, 5.359368801116943, 5.365372180938721, 4.912477493286133, 4.454776763916016, 4.943211555480957, 4.747915744781494, 4.983549118041992, 4.978596210479736, 4.759714603424072, 3.8251633644104004, 4.791332244873047, 4.068612575531006, 4.581691741943359, 5.325607776641846, 5.339731693267822, 5.869668006896973, 4.713142395019531, 5.516348838806152, 4.823606967926025, 4.336025238037109, 5.125431537628174, 5.4897379875183105, 4.938153266906738, 3.8523433208465576, 3.5147171020507812, 2.825772523880005, 4.5165252685546875, 4.897930145263672, 4.675734996795654, 4.185122966766357, 4.4198994636535645, 4.344083786010742, 4.199496746063232, 5.080615520477295, 5.80402946472168, 5.3240251541137695, 5.352659225463867, 4.285547256469727, 4.365880966186523, 4.908997535705566, 5.631256580352783, 4.323183059692383, 5.730123519897461, 4.4613728523254395, 4.907032012939453, 4.391789436340332, 4.874873161315918, 4.3786540031433105, 3.923907518386841, 3.8010544776916504, 5.497247219085693, 4.533561706542969, 2.75665545463562, 3.468526840209961, 4.305870056152344, 5.233013153076172, 4.206966876983643, 4.369204998016357, 4.493398666381836, 4.733616352081299, 4.177803993225098, 5.010806083679199, 3.8536224365234375, 4.839366912841797, 4.6986403465271, 4.8607048988342285, 4.518617153167725, 4.332313060760498, 4.6465678215026855, 6.028987407684326, 6.432769298553467, 5.84228515625, 6.132228851318359, 5.6897292137146, 4.648244857788086, 4.770958423614502, 4.945152282714844, 4.311029434204102, 5.641420364379883, 4.21635103225708, 3.124561071395874, 3.077230453491211, 3.4501185417175293, 4.613278388977051, 4.882390022277832, 3.4628915786743164, 3.3594210147857666, 3.588581085205078, 3.788086414337158, 3.8710055351257324, 4.179475784301758, 5.464221954345703, 3.5441489219665527, 4.471734046936035, 5.886767864227295, 5.2588114738464355, 4.418117523193359, 6.319204807281494, 6.389309406280518, 5.5392961502075195, 5.620984077453613, 6.029967784881592, 6.490626811981201, 5.7263898849487305, 5.02962589263916, 5.957376480102539, 6.243420124053955, 4.2303972244262695, 3.3614144325256348, 3.675245523452759, 4.1326398849487305, 5.038752555847168, 4.964213848114014, 3.902245044708252, 3.7470030784606934, 5.397003173828125, 6.589795112609863, 5.06823205947876, 5.835757255554199, 5.02475643157959, 4.981559753417969, 4.898412227630615, 4.784500598907471, 6.1927924156188965, 7.403872966766357, 6.211248397827148, 6.387683868408203, 7.071500778198242, 6.805934906005859, 5.715464115142822, 5.573761940002441, 5.5749406814575195, 5.82991361618042, 5.239090919494629, 4.190572738647461, 2.9790899753570557, 2.7668185234069824, 3.4612553119659424, 4.886892795562744, 4.861338138580322, 4.02401876449585, 4.603573799133301, 4.083677768707275, 3.5264346599578857, 4.0486249923706055, 5.332529067993164, 5.107500076293945, 5.379476070404053, 5.977385520935059, 5.353931903839111, 5.028198719024658, 5.536744117736816, 6.518156051635742, 6.303865432739258, 5.4792680740356445, 4.830152988433838, 5.565500259399414, 5.047155857086182, 5.63020133972168, 5.547937393188477, 5.6796393394470215, 5.579392433166504, 5.386792182922363, 4.753823757171631, 3.510826826095581, 2.2661802768707275, 3.26326060295105, 4.099877834320068, 2.9552392959594727, 2.58079195022583, 3.0461461544036865, 4.151622295379639, 3.8780264854431152, 4.443735599517822, 4.297019958496094, 4.139806270599365, 3.594632148742676, 3.2468416690826416, 3.1207754611968994, 4.2985734939575195, 4.340734481811523, 4.3823699951171875, 4.746155738830566, 5.367251396179199, 4.530276298522949, 4.313390254974365, 4.294511795043945, 4.408937931060791, 5.369842052459717, 4.260544300079346, 4.447314739227295, 3.408646583557129, 1.9207472801208496, 2.2952537536621094, 2.014754295349121, 2.678239107131958, 3.685110092163086, 3.428898572921753, 2.5012552738189697, 2.875190258026123, 3.8214404582977295, 3.5847535133361816, 2.6014492511749268, 3.7428081035614014, 4.150703430175781, 3.231694221496582, 2.7587811946868896, 3.504899024963379, 4.003396511077881, 3.729607343673706, 3.668684482574463, 3.3092780113220215, 3.2698299884796143, 3.5382895469665527, 4.338779449462891, 3.939210891723633, 2.9681828022003174, 3.5656516551971436, 3.8673043251037598, 2.4990875720977783, 2.454779624938965, 1.9112584590911865, 2.6880650520324707, 3.157829761505127, 3.1385841369628906, 3.053359031677246, 3.740057945251465, 3.1853320598602295, 3.181230306625366, 2.8291943073272705, 2.599818229675293, 2.8566479682922363, 2.2130861282348633, 3.311353921890259, 2.1786136627197266, 2.98246431350708, 3.1436779499053955, 2.8346524238586426, 3.4753026962280273, 3.298964500427246, 3.664700984954834, 2.84322452545166, 3.6047091484069824, 3.2299892902374268, 3.817812204360962, 4.00898551940918, 3.9631993770599365, 3.2198455333709717, 2.0860462188720703, 2.4838829040527344, 3.565897226333618, 3.6483535766601562, 5.251792907714844, 4.617303848266602, 4.845329761505127, 4.153069019317627, 4.042811870574951, 4.743400573730469, 3.115861177444458, 4.090195178985596, 2.9544215202331543, 4.295297622680664, 4.383529186248779, 4.437906265258789, 4.494531631469727, 3.873852014541626, 4.116816997528076, 3.0658390522003174, 4.951176166534424, 4.2294206619262695, 4.778141498565674, 3.7700092792510986, 4.902309894561768, 4.183345794677734, 4.605403900146484, 3.6483216285705566, 2.885193347930908, 3.6243672370910645, 4.841394901275635, 6.179845809936523, 6.197045803070068, 6.214447021484375, 6.256086349487305, 6.2878923416137695, 6.499175548553467, 6.21090030670166, 5.213577747344971, 5.258569717407227, 4.183468341827393, 5.980557918548584, 4.8187642097473145, 6.4205322265625, 5.265300750732422, 4.76393461227417, 5.823273181915283, 3.9808034896850586, 5.703244209289551, 4.2952399253845215, 6.806795597076416, 4.557127475738525, 5.890596389770508, 5.655268669128418, 6.22779655456543, 5.375382423400879, 3.647857189178467, 3.84293794631958, 4.687597751617432, 5.594852447509766, 5.359451770782471, 5.47589635848999, 5.494030952453613, 6.643865585327148, 5.482696056365967, 6.205997467041016, 4.7188191413879395, 5.281616687774658, 4.798813819885254, 4.4268598556518555, 4.574159622192383, 4.452583312988281, 4.9739460945129395, 5.058538436889648, 5.9020586013793945, 5.0147223472595215, 5.678546905517578, 4.173629283905029, 5.075219631195068, 5.1516523361206055, 5.802010536193848, 5.464688301086426, 5.28864049911499, 4.867674350738525, 3.8495302200317383, 3.796464204788208, 4.251667499542236, 6.14102840423584, 5.363317012786865, 6.534386157989502, 5.778741836547852, 6.273260593414307, 5.444460391998291, 6.2583088874816895, 5.37279748916626, 5.2299275398254395, 3.866164445877075, 4.528481483459473, 4.610903263092041, 5.28508186340332, 5.5999436378479, 5.154616355895996, 4.520512580871582, 4.440775394439697, 4.713114261627197, 4.900034427642822, 5.897946357727051, 4.106300354003906, 5.513294219970703, 5.775834560394287, 5.268817901611328, 4.265044689178467, 3.2906320095062256, 3.935262441635132, 3.8511078357696533, 5.748280048370361, 5.350760459899902, 5.826981544494629, 5.776736736297607, 5.924931526184082, 6.151734352111816, 6.280920505523682, 5.721715927124023, 5.623737335205078, 4.58212947845459, 4.611929416656494, 5.617303848266602, 5.004281520843506, 5.749558448791504, 5.324666500091553, 5.127754211425781, 4.4093732833862305, 4.060499668121338, 4.306877136230469, 4.747209548950195, 5.739322662353516, 5.248685836791992, 5.7261834144592285, 5.822727680206299, 4.898998260498047, 3.5213465690612793, 3.221092939376831, 4.421587944030762, 5.32956075668335, 5.119133949279785, 4.14610481262207, 5.601961135864258, 5.714949131011963, 6.277717590332031, 5.833986759185791, 5.825328826904297, 4.9059319496154785, 5.649018287658691, 4.677794933319092, 5.735637187957764, 4.202727317810059, 4.82505464553833, 3.9143190383911133, 4.0839643478393555, 4.542434215545654, 3.895461082458496, 5.484561443328857, 4.275979995727539, 4.620037078857422, 5.792569637298584, 5.814654350280762, 5.324215412139893, 5.377388000488281, 4.311117172241211, 3.7352373600006104, 4.0976786613464355, 5.039505958557129, 4.553200721740723, 4.370275497436523, 4.765977382659912, 5.187633991241455, 6.072827339172363, 6.208315372467041, 6.371485233306885, 5.3180084228515625, 4.349242687225342, 3.9019153118133545, 4.240097522735596, 4.216769695281982, 4.729903697967529, 4.952193737030029, 4.709610462188721, 4.593765735626221, 5.172511100769043, 4.857796669006348, 4.924755573272705, 5.226933479309082, 5.1994476318359375, 5.713127613067627, 5.779498100280762, 5.02763557434082, 3.696718454360962, 3.0594112873077393, 4.3389573097229, 4.83632230758667, 4.839268207550049, 4.452465057373047, 5.000964641571045, 5.01193904876709, 5.183248519897461, 5.569290637969971, 5.993680000305176, 4.909926891326904, 5.302093982696533, 4.33212423324585, 4.917224407196045, 4.583473205566406, 4.468057632446289, 5.196882724761963, 4.728492259979248, 4.610194206237793, 4.050124168395996, 5.566160678863525, 4.69082498550415, 5.595762729644775, 5.144333839416504, 5.966470241546631, 5.408254146575928, 5.496110916137695, 4.250485420227051, 3.6186094284057617, 3.5953378677368164, 4.6357879638671875, 3.728562355041504, 5.298824310302734, 4.296288013458252, 5.24640417098999, 5.347620487213135, 5.8899712562561035, 5.926305770874023, 5.450161457061768, 4.390270233154297, 4.98395299911499, 4.300193786621094, 5.035148620605469, 5.044480323791504, 4.471506118774414, 4.608163356781006, 4.595651626586914, 4.670234680175781, 3.9754271507263184, 4.741552829742432, 4.232438564300537, 4.5396575927734375, 4.6884613037109375, 5.589517593383789, 4.675947189331055, 4.70452356338501, 4.046989440917969, 4.766599178314209, 5.6268696784973145, 5.172713756561279, 4.0806097984313965, 4.856508731842041, 4.909202575683594, 6.417600631713867, 6.491198539733887, 6.604029655456543, 5.807094097137451, 5.987415790557861, 5.53718900680542, 4.156081676483154, 4.57383394241333, 4.175050258636475, 5.222842216491699, 4.423067569732666, 4.72010612487793, 5.001923561096191, 5.441789627075195, 4.538496971130371, 3.883265256881714, 4.272129535675049, 5.107614994049072, 5.0694098472595215, 3.846605062484741, 3.840320587158203, 4.141205787658691, 3.9428067207336426, 5.618170738220215, 4.389243125915527, 4.666818141937256, 3.9602506160736084, 5.12784481048584, 5.947010040283203, 6.314993381500244, 6.993933200836182, 5.826140880584717, 6.414907932281494, 5.595312118530273, 5.207756996154785, 4.705254077911377, 4.283934116363525, 5.191247463226318, 4.4765167236328125, 5.4508891105651855, 4.7418212890625, 5.5462565422058105, 5.231356620788574, 4.802678108215332, 5.246883392333984, 5.1956000328063965, 5.249422550201416, 4.512035846710205, 3.660825252532959, 4.384298324584961, 4.080472946166992, 5.0556721687316895, 4.12076997756958, 4.436049938201904, 4.085387229919434, 4.363414287567139, 5.638261795043945, 5.53518533706665, 5.602380752563477, 6.394556522369385, 6.011706829071045, 5.355319023132324, 5.166184425354004, 5.994207859039307, 4.3265581130981445, 5.426584720611572, 4.013586521148682, 6.032648086547852, 5.271159648895264, 5.314186096191406, 5.121654510498047, 5.593728542327881, 4.750551700592041, 5.5475664138793945, 4.81019926071167, 4.978960990905762, 3.871612787246704, 4.586826324462891, 4.533254146575928, 6.0615057945251465, 4.1026811599731445, 4.237202167510986, 4.10076379776001, 5.0210466384887695, 4.973462104797363, 6.417085647583008, 6.869692802429199, 5.845726013183594, 6.9859113693237305, 5.9001383781433105, 4.981882572174072, 4.728288173675537, 4.617103099822998, 5.544980049133301, 4.240307331085205, 4.900881290435791, 5.2657599449157715, 5.3564839363098145, 5.400954723358154, 5.069640636444092, 5.121244430541992, 4.783501148223877, 4.999521732330322, 4.555206775665283, 2.6829354763031006, 4.173967361450195, 4.642419338226318, 6.239547252655029, 4.999948978424072, 4.597759246826172, 3.4939589500427246, 4.667904376983643, 4.920975208282471, 4.615225791931152, 5.311735153198242, 6.122041702270508, 5.252735614776611, 5.9143195152282715, 5.704956531524658, 5.520184516906738, 3.932478904724121, 3.9855234622955322, 4.321044445037842, 5.243842124938965, 5.421536445617676, 5.459785461425781, 6.2199177742004395, 5.717817783355713, 5.93498420715332, 6.1665778160095215, 5.1218132972717285, 3.972947359085083, 2.299492359161377, 4.155683517456055, 4.772975921630859, 5.787137508392334, 5.807003974914551, 4.4673380851745605, 4.642449378967285, 4.842798233032227, 5.774112701416016, 5.865898609161377, 5.494264602661133, 6.270058631896973, 6.758311748504639, 5.676401138305664, 5.5109028816223145, 5.1754655838012695, 4.719484329223633, 3.6936187744140625, 3.8847007751464844, 4.823353290557861, 5.715768337249756, 5.4670634269714355, 6.788495063781738, 5.382580757141113, 5.761915683746338, 5.192263603210449, 5.212041854858398, 4.441451072692871, 2.6423211097717285, 4.516851902008057, 5.825678825378418, 6.804571151733398, 6.582200527191162, 5.576089859008789, 5.2658467292785645, 5.079538822174072, 5.073318004608154, 4.903992652893066, 5.5599141120910645, 5.936614990234375, 5.671085357666016, 5.498439311981201, 5.179405212402344, 4.303792953491211, 4.486885070800781, 4.319976806640625, 4.187618255615234, 5.020462989807129, 5.078542232513428, 6.0404558181762695, 6.133603096008301, 5.986167907714844, 5.55646276473999, 5.0984673500061035, 5.186586856842041, 4.388045787811279, 3.4164154529571533, 4.056118011474609, 5.349081993103027, 6.731678485870361, 6.721919059753418, 6.188059329986572, 5.494990348815918, 5.0933380126953125, 5.550588607788086, 5.017096519470215, 5.563663959503174, 6.113025665283203, 5.827856540679932, 5.334990501403809, 5.132752418518066, 4.0004191398620605, 3.852280616760254, 3.655419111251831, 3.932964563369751, 4.23956823348999, 4.96014928817749, 4.779211521148682, 5.393507957458496, 4.129082679748535, 5.953400611877441, 5.397991180419922, 5.497310638427734, 4.518351078033447, 3.3287570476531982, 4.150076866149902, 4.987755298614502, 6.889573097229004, 7.095320224761963, 6.23223352432251, 6.313479423522949, 5.453352451324463, 5.5690460205078125, 5.507585525512695, 5.822490215301514, 5.631770133972168, 6.546350479125977, 5.623988151550293, 5.4386210441589355, 4.304937839508057, 4.401934623718262, 3.3964614868164062, 3.663325786590576, 4.293434143066406, 4.656719207763672, 4.899921894073486, 4.507481575012207, 4.9098639488220215, 4.63832950592041, 3.969989776611328, 5.200517177581787, 3.851212501525879, 4.238405704498291, 3.3284900188446045, 4.9278364181518555, 5.850988864898682, 6.209662914276123, 6.303735733032227, 5.833744525909424, 5.582273006439209, 5.661999702453613, 5.880424976348877, 5.395565986633301, 5.139829158782959, 5.421539306640625, 5.2693772315979, 5.649051189422607, 4.261600494384766, 5.303246021270752, 3.6939001083374023, 4.665743350982666, 4.485923767089844, 6.373044490814209, 5.24347448348999, 5.127202987670898, 4.2854719161987305, 5.359159469604492, 4.189073085784912, 5.68211030960083, 4.375082015991211, 4.7399749755859375, 3.7498722076416016, 4.704818248748779, 5.818678379058838, 5.977442264556885, 5.207042217254639, 5.632365703582764, 4.852672576904297, 4.055492877960205, 5.318253517150879, 4.3192973136901855, 5.2440643310546875, 4.778287887573242, 4.1627607345581055, 3.77362060546875, 4.3264055252075195, 4.915520668029785, 4.485286235809326, 5.689615726470947, 5.428503513336182, 5.6692795753479, 4.5109357833862305, 5.044665336608887, 5.024706840515137, 4.435790538787842, 4.674675941467285, 5.975704193115234, 4.426348686218262, 4.391195297241211, 2.534250497817993, 4.322704315185547, 4.862893104553223, 4.937906265258789, 4.294506549835205, 4.11829137802124, 4.1753997802734375, 4.3540215492248535, 5.183798313140869, 5.016493797302246, 5.942011833190918, 4.879612445831299, 5.533511638641357, 4.830909252166748, 4.167004108428955, 5.507391452789307, 4.699097156524658, 5.578103065490723, 4.652552604675293, 5.727817535400391, 4.870733261108398, 4.5187835693359375, 4.366567134857178, 4.226515769958496, 4.534882545471191, 4.42877721786499, 3.827242612838745, 4.2706499099731445, 3.236039161682129, 4.122791767120361, 4.693713665008545, 4.788135051727295, 3.901505470275879, 4.879470348358154, 4.601233959197998, 4.675808906555176, 4.381208419799805, 4.596057415008545, 4.451279640197754, 4.031220436096191, 4.555012226104736, 4.8379106521606445, 5.616337776184082, 4.969178199768066, 5.72202730178833, 6.602881908416748, 6.334636688232422, 5.464513301849365, 4.889941692352295, 6.1195902824401855, 4.921964168548584, 4.789677619934082, 4.3500165939331055, 4.922698020935059, 3.9799273014068604, 4.012101650238037, 3.1981852054595947, 3.9410033226013184, 4.509700775146484, 4.154081344604492, 3.9692556858062744, 3.175017833709717, 3.344928503036499, 3.760436773300171, 4.219137191772461, 4.8690924644470215, 5.017300605773926, 4.770235061645508, 4.2258381843566895, 4.293673515319824, 5.320059776306152, 5.31406307220459, 5.235363960266113, 5.829577922821045, 5.931479454040527, 6.033788681030273, 6.11838960647583, 5.823760032653809, 5.977088451385498, 5.782448768615723, 5.66575288772583, 5.655775547027588, 5.103062629699707, 3.7305057048797607, 3.7681918144226074, 4.025921821594238, 4.669906139373779, 4.410074234008789, 4.3431196212768555, 4.6346588134765625, 4.520888805389404, 5.275546073913574, 5.508688926696777, 5.5549845695495605, 5.089621543884277, 4.7907609939575195, 5.200077056884766, 5.642168998718262, 5.702270984649658, 5.866209506988525, 7.131066799163818, 7.027012825012207, 6.335300922393799, 5.796506404876709, 5.749180316925049, 6.418461322784424, 5.442868709564209, 5.9434943199157715, 4.769488334655762, 4.959697723388672, 3.456394672393799, 2.8577303886413574, 3.139263868331909, 3.8204197883605957, 6.006091117858887, 4.721946716308594, 4.1672868728637695, 3.5534536838531494, 4.7977705001831055, 4.328978538513184, 5.256955146789551, 5.15500020980835, 6.150791645050049, 5.2337799072265625, 4.679342746734619, 5.195684432983398, 6.382318019866943, 5.855307102203369, 6.229202747344971, 6.190080165863037, 5.675187587738037, 5.9868245124816895, 5.668397903442383, 5.477560997009277, 5.5103583335876465, 5.94478178024292, 5.870367527008057, 5.986095428466797, 3.9686617851257324, 3.6041507720947266, 3.0668208599090576, 2.391211986541748, 4.146209716796875, 3.924031972885132, 4.052685737609863, 3.2636828422546387, 3.4409453868865967, 4.126655578613281, 4.1465911865234375, 4.252387523651123, 4.9950056076049805, 3.9426393508911133, 4.588884353637695, 3.440800189971924, 3.8182640075683594, 4.737776279449463, 4.88506555557251, 4.857761383056641, 4.894500255584717, 5.381829261779785, 4.414621829986572, 5.021275520324707, 4.271242141723633, 5.0107622146606445, 4.7358880043029785, 4.795414447784424, 3.6837074756622314, 3.8042707443237305, 1.9966347217559814, 2.653175115585327, 3.547520637512207, 2.4588398933410645, 2.8847696781158447, 3.153095245361328, 3.2219207286834717, 3.3641858100891113, 3.939931869506836, 3.384828567504883, 3.2593352794647217, 3.421084403991699, 3.2351202964782715, 2.968552350997925, 3.757957935333252, 4.226080417633057, 3.477684736251831, 3.802906036376953, 3.507667064666748, 3.87015962600708, 3.213893175125122, 3.6437413692474365, 4.018486499786377, 4.232287406921387, 3.4420132637023926, 3.86871075630188, 2.3718061447143555, 2.230339765548706, 1.823960781097412, 3.082151174545288, 3.9522435665130615, 4.211269378662109, 4.450276851654053, 4.288799285888672, 4.029148578643799, 4.093076229095459, 4.105110168457031, 3.5835938453674316, 3.358553409576416, 3.326545000076294, 3.5235118865966797, 3.290904998779297, 4.155922889709473, 3.6791162490844727, 4.230606555938721, 3.9332351684570312, 4.31472110748291, 3.910484790802002, 4.443246841430664, 4.354492664337158, 4.6338653564453125, 4.493225574493408, 5.176567554473877, 4.944268703460693, 4.106236934661865, 3.4713573455810547, 3.047229528427124, 4.705847263336182, 5.459249973297119, 6.818030834197998, 6.240267753601074, 6.566335201263428, 5.768955707550049, 6.044851303100586, 6.137333393096924, 5.059017658233643, 4.976823806762695, 4.842885494232178, 5.693271160125732, 5.825349807739258, 5.613780975341797, 5.9814910888671875, 5.137190341949463, 5.660634994506836, 5.162618637084961, 6.0042724609375, 6.307621955871582, 5.9779558181762695, 5.7523064613342285, 6.138195514678955, 6.02032995223999, 6.097110748291016, 4.973200798034668, 4.301308631896973, 3.6942298412323, 6.441952228546143, 6.884620189666748, 7.871830463409424, 7.506796836853027, 7.520041465759277, 8.115806579589844, 7.781447410583496, 7.5922017097473145, 6.461877346038818, 6.073091983795166, 5.571122169494629, 6.449190616607666, 6.698008060455322, 6.832956790924072, 6.256832599639893, 6.365077495574951, 7.126492977142334, 5.361153602600098, 6.524235725402832, 6.529962539672852, 7.418307304382324, 5.697759628295898, 7.377455234527588, 6.882760524749756, 7.352889060974121, 6.223488807678223, 5.046984672546387, 4.06865119934082, 5.870355129241943, 7.092720985412598, 6.320439338684082, 6.712620258331299, 7.295712471008301, 7.6076273918151855, 7.036179542541504, 6.743677139282227, 6.652045726776123, 6.45264196395874, 5.235025882720947, 6.07273006439209, 4.900251865386963, 6.432047367095947, 5.763847827911377, 6.207377910614014, 8.095909118652344, 5.798304557800293, 6.5871968269348145, 5.354064464569092, 6.401427745819092, 6.383949279785156, 6.556541919708252, 6.784907817840576, 6.367126941680908, 5.918216228485107, 4.434292793273926, 3.972524642944336, 6.211849212646484, 7.759965419769287, 7.411938667297363, 8.056708335876465, 7.25830602645874, 7.969213485717773, 6.595868110656738, 8.03954792022705, 7.234915733337402, 5.973832130432129, 5.918386936187744, 5.984414100646973, 5.9261345863342285, 7.128410816192627, 6.9070539474487305, 6.032256126403809, 6.100308895111084, 5.217860221862793, 5.60500431060791, 6.50966215133667, 5.455101490020752, 5.862576961517334, 7.354483127593994, 6.706485748291016, 6.295616626739502, 5.455916881561279, 4.301135540008545, 4.004628658294678, 5.072994232177734, 7.265058994293213, 6.54964017868042, 7.031554222106934, 6.535865783691406, 7.722325325012207, 7.208329677581787, 7.773000717163086, 7.313086032867432, 6.778349876403809, 5.540070533752441, 6.881976127624512, 5.927274227142334, 6.194612979888916, 6.465888023376465, 6.642414093017578, 5.943395614624023, 4.860239028930664, 5.780071258544922, 5.006411075592041, 6.440245151519775, 5.909610271453857, 7.2106218338012695, 7.226616859436035, 7.720236301422119, 6.047490119934082, 4.385615348815918, 3.8585410118103027, 5.554808139801025, 6.399292469024658, 5.892493724822998, 5.112174034118652, 6.889500141143799, 7.115750789642334, 7.398449897766113, 7.0614118576049805, 7.262696266174316, 6.286489963531494, 6.4459614753723145, 5.77369499206543, 6.423446178436279, 4.878307819366455, 5.855656147003174, 5.919950008392334, 5.659286022186279, 4.945858001708984, 5.453787326812744, 6.072084426879883, 5.325644016265869, 6.786405563354492, 6.557251930236816, 6.848692417144775, 7.10983943939209, 6.916252613067627, 4.982490062713623, 3.731166124343872, 5.771444797515869, 6.080118179321289, 5.833217620849609, 5.38831901550293, 6.234574317932129, 6.204726219177246, 7.538263320922852, 7.962857246398926, 7.798523426055908, 6.069241046905518, 5.987873554229736, 4.793024063110352, 5.460749626159668, 5.226233959197998, 6.205582618713379, 6.168978691101074, 5.527721405029297, 6.073323726654053, 5.739831924438477, 6.677074909210205, 6.091903209686279, 6.190633296966553, 6.918752670288086, 7.048704147338867, 6.464210510253906, 6.080385208129883, 4.984046459197998, 3.6180453300476074, 4.417998790740967, 5.880189418792725, 5.980861663818359, 5.679010391235352, 5.461769104003906, 5.51923131942749, 6.248142242431641, 7.394309043884277, 6.430807113647461, 6.633134365081787, 6.183292865753174, 5.928422451019287, 5.583582878112793, 5.864843368530273, 5.832184791564941, 6.219361305236816, 5.770664215087891, 4.713848114013672, 5.5634236335754395, 6.761594772338867, 6.571344375610352, 6.469700336456299, 6.59951639175415, 7.1243133544921875, 6.792098045349121, 6.222476005554199, 5.357666015625, 3.757873773574829, 5.235864162445068, 5.900388717651367, 5.742921352386475, 5.992581367492676, 5.820687770843506, 6.7065110206604, 6.892246723175049, 7.331374645233154, 7.389060020446777, 6.817409038543701, 6.722251892089844, 5.978194236755371, 5.400854587554932, 5.65904426574707, 6.210927486419678, 5.392172336578369, 5.90638542175293, 5.5261359214782715, 5.078281879425049, 6.185269832611084, 5.152794361114502, 4.873790264129639, 5.543771266937256, 6.342055797576904, 5.9161272048950195, 5.747318267822266, 5.437236309051514, 4.330942153930664, 6.1681599617004395, 7.010319709777832, 6.041275501251221, 5.67201042175293, 5.696455001831055, 6.367830753326416, 8.303682327270508, 7.94399356842041, 7.156499862670898, 7.822382926940918, 7.160041332244873, 6.62434196472168, 5.271719932556152, 5.2977614402771, 6.4645094871521, 5.305985927581787, 6.019639015197754, 6.008203983306885, 6.9689483642578125, 6.033412933349609, 6.02167272567749, 5.107044696807861, 5.643431663513184, 6.194309234619141, 6.611001014709473, 4.624221324920654, 4.613391876220703, 3.857499837875366, 6.0110063552856445, 6.315426826477051, 6.281614303588867, 4.433259010314941, 5.165908336639404, 6.067758083343506, 7.157183647155762, 7.4630351066589355, 8.051512718200684, 7.539673805236816, 8.03923511505127, 7.493558883666992, 5.933644771575928, 6.07215690612793, 6.078088760375977, 6.462594032287598, 5.53964376449585, 6.202387809753418, 6.470476150512695, 6.994209289550781, 5.904414176940918, 6.288154125213623, 5.938195705413818, 6.362712860107422, 7.582190036773682, 5.145113468170166, 4.51287841796875, 4.7256245613098145, 5.290726184844971, 6.7964768409729, 5.542419910430908, 6.065257549285889, 4.285024166107178, 6.294970989227295, 6.954849720001221, 6.476117134094238, 8.28409194946289, 7.975428581237793, 6.6176438331604, 7.04226016998291, 6.734043598175049, 7.004659652709961, 5.970616817474365, 5.838902473449707, 5.6480607986450195, 7.144553184509277, 5.933941841125488, 6.5019121170043945, 6.619856834411621, 6.840075969696045, 5.292135715484619, 6.326052188873291, 6.802670001983643, 5.911048889160156, 4.785263538360596, 5.142079830169678, 6.09360933303833, 6.856794357299805, 5.446941375732422, 4.912174224853516, 5.080154895782471, 5.536346912384033, 6.673121929168701, 7.3074493408203125, 7.566547870635986, 8.456985473632812, 8.157511711120605, 6.921131134033203, 5.971576690673828, 6.873846530914307, 6.088404178619385, 5.8734450340271, 5.571396350860596, 6.255620002746582, 6.434769630432129, 6.646327495574951, 6.849421501159668, 7.277412414550781, 5.655209541320801, 6.9393134117126465, 6.546473026275635, 4.729312896728516, 4.122584819793701, 4.390514373779297, 6.047574996948242, 7.837600231170654, 6.371236324310303, 4.872566223144531, 4.799492359161377, 6.305186748504639, 5.473531246185303, 5.639281749725342, 7.388332843780518, 6.540960788726807, 7.525917053222656, 7.0239176750183105, 6.651259422302246, 6.562263488769531, 5.217343330383301, 5.123509407043457, 5.312478542327881, 5.55612325668335, 7.094035625457764, 7.272948741912842, 7.096338748931885, 7.304771423339844, 7.7626752853393555, 7.384873867034912, 6.65280294418335, 4.218232154846191, 3.4588675498962402, 4.288488864898682, 5.576937675476074, 7.660250186920166, 7.210115432739258, 6.010606288909912, 5.162965774536133, 7.460543632507324, 7.1955461502075195, 6.517196178436279, 7.232579231262207, 8.391509056091309, 7.147637844085693, 7.231665134429932, 6.793086051940918, 7.093730926513672, 5.043287754058838, 4.792949676513672, 5.273759841918945, 5.88964319229126, 6.732511043548584, 7.154548645019531, 7.72003173828125, 7.062751770019531, 6.763899803161621, 6.999866008758545, 6.1454291343688965, 5.464439392089844, 3.5550315380096436, 5.421957969665527, 6.941666126251221, 8.111114501953125, 8.703384399414062, 7.111363887786865, 6.512507915496826, 6.329239368438721, 6.04918909072876, 6.351690292358398, 6.535638809204102, 6.637423992156982, 7.543024063110352, 6.636354446411133, 5.764066219329834, 6.055545806884766, 6.139219284057617, 5.016391277313232, 4.898200035095215, 5.6396965980529785, 6.876751899719238, 6.894165515899658, 7.440496444702148, 7.692331790924072, 6.377343654632568, 6.850962162017822, 6.372628211975098, 5.863387107849121, 3.6209635734558105, 4.494832992553711, 6.997880935668945, 7.942626476287842, 8.065732955932617, 8.11336612701416, 6.855165481567383, 6.284238338470459, 6.793242931365967, 6.658929824829102, 7.375756740570068, 7.033047199249268, 7.557106971740723, 7.346813201904297, 5.930838108062744, 4.977297782897949, 4.7997965812683105, 4.629467964172363, 3.8783318996429443, 5.604633331298828, 6.275129795074463, 5.791119575500488, 5.9356889724731445, 6.471944332122803, 7.124324321746826, 5.9886794090271, 6.312489032745361, 5.424818992614746, 4.219436168670654, 4.542460918426514, 6.717894077301025, 8.55780029296875, 8.135622024536133, 8.617063522338867, 8.0457181930542, 6.924745559692383, 7.60801887512207, 6.960265159606934, 7.057492256164551, 7.378109455108643, 7.9939422607421875, 7.485098838806152, 6.679718017578125, 6.026774883270264, 4.96992301940918, 4.304138660430908, 4.4156084060668945, 6.161861419677734, 6.3723249435424805, 5.433477878570557, 6.492063522338867, 5.323146343231201, 5.7188897132873535, 5.196142673492432, 5.527508735656738, 5.42622709274292, 4.729980945587158, 3.8165512084960938, 6.369023323059082, 7.58928918838501, 7.284833908081055, 7.566765308380127, 7.222171306610107, 6.177136421203613, 6.572702407836914, 6.476114273071289, 6.458098411560059, 5.89591121673584, 6.792355060577393, 6.104650020599365, 6.395727634429932, 5.658318042755127, 6.146128177642822, 4.56526517868042, 5.16141939163208, 6.891305446624756, 6.679316997528076, 6.933535575866699, 6.421892166137695, 5.888729095458984, 5.987671852111816, 5.8830790519714355, 6.567197799682617, 5.882874011993408, 5.455805778503418, 3.785890579223633, 6.062005519866943, 6.976389408111572, 6.263683795928955, 6.872239112854004, 6.6178483963012695, 5.835198879241943, 5.706236362457275, 6.623768329620361, 6.367713928222656, 6.477136135101318, 6.328875541687012, 4.432733535766602, 5.220035076141357, 5.01565408706665, 5.799379825592041, 5.584558963775635, 7.0224223136901855, 6.369564533233643, 6.555440425872803, 5.839045524597168, 6.674870491027832, 5.100464820861816, 5.931138038635254, 5.705053806304932, 6.875276565551758, 5.256714820861816, 4.675965785980225, 3.1664981842041016, 5.170224666595459, 6.615673542022705, 6.187282085418701, 5.546726703643799, 5.49766731262207, 5.61484956741333, 4.698491096496582, 6.139216423034668, 6.020036220550537, 7.220500946044922, 6.168639183044434, 6.362135887145996, 5.74118185043335, 6.018683910369873, 5.982761859893799, 6.4830002784729, 7.316060543060303, 6.192176342010498, 6.5204973220825195, 6.446861743927002, 5.670912265777588, 5.711249351501465, 4.9237847328186035, 5.196159362792969, 6.484435558319092, 5.132546901702881, 4.305692672729492, 3.1355643272399902, 5.267018795013428, 6.045907974243164, 5.740550518035889, 4.667997360229492, 5.487334728240967, 5.311807632446289, 5.213512420654297, 5.056637763977051, 5.3293962478637695, 5.729124546051025, 4.743940830230713, 5.667025089263916, 6.660961151123047, 5.273921012878418, 6.202893257141113, 7.201081275939941, 8.511947631835938, 7.642983436584473, 7.381744861602783, 7.453763484954834, 6.574955940246582, 6.6476640701293945, 6.290119171142578, 5.969351768493652, 6.697555065155029, 5.260989665985107, 4.630804538726807, 3.4300599098205566, 4.867248058319092, 5.480502605438232, 5.884564399719238, 4.4007086753845215, 4.252467155456543, 4.488436222076416, 5.028834342956543, 4.999658107757568, 6.301997184753418, 6.540367126464844, 5.767857074737549, 4.835949897766113, 6.407586574554443, 7.053534984588623, 6.118611812591553, 6.9315032958984375, 7.593644618988037, 7.382422924041748, 7.483142375946045, 6.854369163513184, 7.494052410125732, 6.826437473297119, 6.722994804382324, 7.013907432556152, 7.163785934448242, 5.55683708190918, 4.2971673011779785, 4.059870719909668, 5.389824867248535, 6.102597236633301, 5.664333343505859, 5.5178751945495605, 4.7509541511535645, 5.899568557739258, 6.706171989440918, 6.295065402984619, 6.85979700088501, 6.825869560241699, 6.2637834548950195, 6.460525035858154, 6.615779876708984, 7.377199649810791, 8.263915061950684, 8.412120819091797, 7.763421535491943, 7.974278450012207, 7.8270344734191895, 7.220304489135742, 6.897047996520996, 7.117292881011963, 7.014621734619141, 7.068553447723389, 5.343749523162842, 4.334110260009766, 3.795550584793091, 3.122501850128174, 5.751468181610107, 6.6269097328186035, 5.48612642288208, 4.7836198806762695, 5.14813232421875, 5.481471538543701, 5.427631378173828, 6.414186000823975, 6.715549945831299, 7.2777581214904785, 6.7278733253479, 5.966426372528076, 5.602530002593994, 6.986854553222656, 7.749436855316162, 7.7061381340026855, 7.067506313323975, 7.381631851196289, 7.256155967712402, 6.8986921310424805, 6.831172466278076, 7.034348964691162, 7.768841743469238, 7.452640056610107, 7.327906608581543, 5.307794570922852, 4.714818477630615, 2.8098249435424805, 3.459268093109131, 5.1902546882629395, 4.67432165145874, 4.694546222686768, 4.0602898597717285, 5.067250728607178, 4.75097131729126, 5.306543350219727, 5.19687032699585, 5.959194660186768, 5.938361644744873, 4.5737223625183105, 4.035432815551758, 5.658217430114746, 5.832639694213867, 5.414487361907959, 6.012354850769043, 6.563755035400391, 6.043736457824707, 5.653829574584961, 5.786048889160156, 5.530259132385254, 6.149056911468506, 5.654143333435059, 5.755305767059326, 4.5514631271362305, 3.849571466445923, 3.0066752433776855, 3.0589277744293213, 3.5581469535827637, 3.871500253677368, 4.324460029602051, 3.9146995544433594, 3.7607436180114746, 4.825353622436523, 4.691470146179199, 3.5082645416259766, 4.270585060119629, 4.705373764038086, 4.230538845062256, 3.633924722671509, 4.574595928192139, 5.178526878356934, 4.615447521209717, 4.848006248474121, 4.676159858703613, 4.814357757568359, 3.8926162719726562, 5.242083549499512, 4.9435529708862305, 4.31284236907959, 4.179509162902832, 4.416225910186768, 3.0170140266418457, 2.8237125873565674, 1.9673752784729004, 3.4238643646240234, 4.238803386688232, 4.134034156799316, 3.5248911380767822, 3.477618455886841, 4.248950958251953, 4.116221904754639, 3.6124699115753174, 2.886744976043701, 2.8920233249664307, 2.9989590644836426, 3.4202682971954346, 3.986703395843506, 3.7509818077087402, 3.847987651824951, 2.8980178833007812, 3.8685898780822754, 3.6099891662597656, 4.421904563903809, 3.8599798679351807, 4.5830535888671875, 4.032581329345703, 4.480215549468994, 4.715440273284912, 4.920079231262207, 4.118193626403809, 2.727299928665161, 3.5548202991485596, 5.16605281829834, 5.547308921813965, 4.952704429626465, 5.881172180175781, 6.056952476501465, 6.535768985748291, 4.849328994750977, 4.829873085021973, 4.455972194671631, 4.404786586761475, 4.97012996673584, 5.264928340911865, 4.751594543457031, 4.967388153076172, 5.382431507110596, 4.964521884918213, 5.228153228759766, 5.452180862426758, 5.452381610870361, 4.944344997406006, 5.2049055099487305, 5.107250213623047, 5.528817176818848, 6.064604759216309, 5.554138660430908, 4.435989856719971, 3.121011972427368, 5.60050630569458, 6.323448657989502, 7.133106708526611, 7.538883209228516, 8.87929630279541, 8.098609924316406, 7.970712184906006, 7.614414691925049, 7.775488376617432, 6.9459228515625, 6.394895076751709, 6.368539810180664, 6.567590236663818, 6.824133396148682, 6.714653015136719, 6.371456146240234, 6.648514270782471, 6.153012275695801, 6.226782321929932, 7.176485538482666, 7.6357879638671875, 6.627810478210449, 6.636812210083008, 6.608868598937988, 7.950118064880371, 7.245369911193848, 5.8377180099487305, 4.051358699798584, 5.185706615447998, 6.199855804443359, 6.915584087371826, 7.199843406677246, 6.941037178039551, 7.02459192276001, 7.519880294799805, 7.3931498527526855, 7.146573066711426, 6.072860240936279, 5.918059825897217, 5.557887077331543, 5.092625617980957, 6.93395471572876, 6.050660610198975, 6.272187232971191, 6.819458961486816, 7.219698429107666, 6.2511820793151855, 6.050468444824219, 6.3386311531066895, 6.366883277893066, 7.121931076049805, 7.081469535827637, 7.043841361999512, 7.289247512817383, 5.274494647979736, 3.7007243633270264, 4.735885143280029, 7.046386241912842, 7.899629592895508, 7.268973350524902, 6.668726444244385, 7.7886552810668945, 7.817788600921631, 7.1298112869262695, 6.988327980041504, 6.529696464538574, 5.824451446533203, 6.133099555969238, 5.696831226348877, 6.306680679321289, 6.867204189300537, 6.723242282867432, 5.975831031799316, 6.490751266479492, 5.782556056976318, 5.712253570556641, 5.844822406768799, 6.224228858947754, 6.128302574157715, 7.228916168212891, 6.8580474853515625, 6.458796501159668, 5.2684712409973145, 3.8523595333099365, 5.2411041259765625, 6.83170747756958, 6.588288307189941, 6.940004825592041, 7.176058769226074, 7.613030433654785, 7.152611255645752, 7.268238067626953, 7.323373794555664, 7.697990417480469, 6.112827301025391, 6.725808143615723, 6.3013410568237305, 6.353188514709473, 7.21522855758667, 6.792215824127197, 5.784145832061768, 5.665734767913818, 5.427878379821777, 5.377995014190674, 6.1669135093688965, 5.432824611663818, 6.589959144592285, 7.0656232833862305, 8.388319969177246, 6.96942138671875, 5.3327813148498535, 3.3705172538757324, 4.949787616729736, 5.661938667297363, 6.011669635772705, 6.120811939239502, 6.737387657165527, 6.4596357345581055, 8.214028358459473, 7.513369560241699, 7.472964763641357, 7.659996032714844, 6.214728832244873, 5.820866584777832, 5.935637474060059, 5.5549821853637695, 6.39714241027832, 5.797486305236816, 6.202543258666992, 5.670945167541504, 4.716149806976318, 4.714108943939209, 5.792501449584961, 6.1825761795043945, 6.484381198883057, 6.613983631134033, 7.378139972686768, 7.949056625366211, 6.048211574554443, 4.096441745758057, 4.672018527984619, 5.596231937408447, 6.482345104217529, 5.153426170349121, 5.455577850341797, 6.185153961181641, 7.56141996383667, 7.481212615966797, 7.96759557723999, 7.481049537658691, 6.16505241394043, 4.918543338775635, 5.515919208526611, 5.176032543182373, 5.943546295166016, 5.6767578125, 5.835022926330566, 5.847062110900879, 5.830822467803955, 7.106942176818848, 6.562013626098633, 6.18641471862793, 6.236306667327881, 7.109763145446777, 6.6644673347473145, 6.944949150085449, 5.752137184143066, 4.233585357666016, 4.262759685516357, 5.765841484069824, 6.420934677124023, 6.211213111877441, 5.511362552642822, 5.881633281707764, 5.864084720611572, 7.605977535247803, 7.2489776611328125, 6.977403163909912, 5.738457202911377, 5.8621931076049805, 5.928097724914551, 6.719849586486816, 6.208063125610352, 6.111298561096191, 5.731359958648682, 5.266688346862793, 5.111896991729736, 6.362823963165283, 7.337080478668213, 6.478688716888428, 6.8245086669921875, 7.04965877532959, 6.839737415313721, 7.202740669250488, 6.256972312927246, 4.213977813720703, 4.768441200256348, 5.424940586090088, 5.513786792755127, 5.521337509155273, 5.5001091957092285, 6.217740535736084, 6.4395036697387695, 7.0584259033203125, 6.900430679321289, 7.695472717285156, 7.3995890617370605, 6.193658351898193, 5.737725734710693, 5.876211166381836, 5.845360279083252, 5.261449337005615, 5.970484733581543, 5.660890579223633, 5.91680908203125, 5.631801605224609, 5.808807373046875, 5.527657508850098, 5.275712490081787, 6.083114147186279, 6.606405735015869, 6.760370254516602, 5.962953090667725, 4.852998733520508, 5.73753023147583, 6.207394123077393, 6.3757004737854, 5.660206317901611, 6.282934188842773, 6.793337821960449, 7.0479817390441895, 7.28257942199707, 8.43128490447998, 7.711194038391113, 6.988217830657959, 6.7629008293151855, 6.300732135772705, 5.781357765197754, 6.710692405700684, 5.14723539352417, 5.491313457489014, 5.913897514343262, 7.079310417175293, 5.647678375244141, 5.529809474945068, 5.65965461730957, 5.683405876159668, 5.502879619598389, 6.385445594787598, 6.0942702293396, 5.304518699645996, 4.163608074188232, 5.79998254776001, 6.214359760284424, 6.613366603851318, 4.985154628753662, 5.245749473571777, 5.474432945251465, 6.766006946563721, 7.405008316040039, 8.839566230773926, 8.192703247070312, 7.239236354827881, 7.642763137817383, 7.191747188568115, 5.45240592956543, 5.806225299835205, 6.208500862121582, 6.579692363739014, 6.870284080505371, 6.122257709503174, 6.682809829711914, 7.200033664703369, 6.304932594299316, 5.3675360679626465, 5.894091606140137, 7.427542686462402, 7.043485641479492, 5.301091194152832, 3.404836416244507, 5.034170150756836, 5.655810832977295, 5.927757263183594, 6.314046382904053, 4.857351779937744, 4.778517723083496, 5.51944637298584, 7.54616117477417, 7.232144832611084, 7.645962715148926, 7.425577640533447, 6.600791931152344, 7.396433353424072, 7.301909923553467, 6.330981254577637, 6.08864164352417, 5.432050704956055, 6.397200584411621, 6.209706783294678, 7.271330833435059, 6.736091613769531, 6.648299217224121, 5.943733215332031, 6.468326091766357, 7.2155632972717285, 7.398326873779297, 5.608998775482178, 3.9437899589538574, 6.276010513305664, 6.975742816925049, 5.765153408050537, 5.7389984130859375, 5.359906196594238, 5.127068996429443, 6.228783130645752, 7.591254711151123, 7.713534832000732, 8.163756370544434, 8.053662300109863, 7.238499641418457, 7.252510070800781, 6.538026332855225, 6.426788330078125, 5.935734272003174, 5.4877824783325195, 6.070705890655518, 6.917778015136719, 6.1298828125, 5.586827754974365, 6.790979862213135, 7.181469440460205, 6.182435512542725, 5.805052280426025, 6.45730447769165, 5.024332523345947, 3.559725761413574, 5.917427062988281, 7.013560771942139, 6.811487197875977, 5.41947603225708, 5.568509101867676, 5.565147876739502, 5.831782341003418, 5.882758617401123, 7.108841419219971, 7.21226167678833, 7.138106822967529, 7.2328691482543945, 7.687695503234863, 6.125946998596191, 5.630205154418945, 5.361860275268555, 5.553351402282715, 5.1807332038879395, 6.133435249328613, 7.168275833129883, 7.630345344543457, 7.456415176391602, 8.122014045715332, 7.006981372833252, 7.117481708526611, 6.111120223999023, 4.505956649780273, 2.7028648853302, 5.034276962280273, 6.40655517578125, 7.195155143737793, 6.738421440124512, 5.616168022155762, 6.1573381423950195, 6.670565128326416, 7.345929145812988, 7.195598125457764, 7.579668998718262, 7.730560302734375, 8.01144027709961, 7.53971004486084, 7.690558910369873, 6.003811836242676, 4.984211444854736, 4.832984447479248, 5.853398323059082, 6.156472682952881, 7.335423469543457, 7.1898627281188965, 7.1931633949279785, 7.392917156219482, 7.092953681945801, 7.469435214996338, 6.596914291381836, 4.160340309143066, 3.3900697231292725, 6.330102443695068, 7.010794639587402, 8.256893157958984, 8.711891174316406, 6.868710994720459, 6.035799026489258, 6.953001976013184, 7.099704265594482, 6.2956037521362305, 6.7494001388549805, 6.807153224945068, 7.305776119232178, 6.417892932891846, 6.004504203796387, 6.464051723480225, 5.62222146987915, 4.652911186218262, 5.760410785675049, 6.4000935554504395, 7.157410621643066, 6.916382312774658, 7.906116008758545, 7.346351623535156, 6.707698345184326, 6.576058387756348, 7.317874908447266, 4.444131851196289, 3.622217893600464, 5.883394718170166, 7.307987689971924, 7.99912691116333, 7.998702526092529, 7.064208507537842, 6.014779090881348, 6.548800468444824, 6.431049346923828, 7.0461273193359375, 7.119691371917725, 7.173431396484375, 7.886313438415527, 7.348758220672607, 5.5306549072265625, 5.0514607429504395, 4.454023838043213, 4.378947734832764, 5.19191312789917, 5.415863513946533, 6.184824466705322, 6.418126583099365, 6.8016791343688965, 6.799655914306641, 6.19592809677124, 6.062754154205322, 6.477036952972412, 5.1525774002075195, 3.4954912662506104, 5.964820384979248, 8.063187599182129, 8.000075340270996, 8.86379623413086, 8.487594604492188, 7.544353485107422, 7.518031597137451, 6.719323635101318, 6.720161437988281, 7.061742782592773, 7.46721887588501, 8.19810962677002, 7.428296089172363, 6.20987606048584, 4.368139266967773, 4.49772834777832, 4.436439514160156, 5.6474432945251465, 5.7726969718933105, 6.377358913421631, 6.20477294921875, 5.5321149826049805, 5.8151397705078125, 5.402441024780273, 5.434221267700195, 5.8060407638549805, 5.501432418823242, 3.916184425354004, 4.766870498657227, 6.8376593589782715, 7.776118278503418, 8.047870635986328, 7.544384002685547, 6.6729817390441895, 6.892942428588867, 6.813498020172119, 7.09564733505249, 7.173618793487549, 7.033214092254639, 6.747722148895264, 7.115193843841553, 6.271154403686523, 5.410841941833496, 5.4595160484313965, 5.3633294105529785, 5.860779285430908, 6.532196998596191, 7.721780776977539, 6.919463634490967, 6.4886298179626465, 5.33363151550293, 6.080103874206543, 5.929660797119141, 6.8413848876953125, 6.047458648681641, 5.026854515075684, 5.118713855743408, 7.2036967277526855, 7.367878437042236, 6.431336402893066, 6.84843635559082, 6.380608558654785, 5.5937323570251465, 6.264307975769043, 6.495010852813721, 5.932271480560303, 5.765965461730957, 5.640989780426025, 5.362210273742676, 4.685227394104004, 5.761931896209717, 5.993541240692139, 6.333343029022217, 6.307291030883789, 7.3424458503723145, 6.973240375518799, 6.205034255981445, 6.1999335289001465, 6.244534969329834, 6.099161624908447, 6.492758274078369, 6.672045707702637, 5.559537410736084, 4.558204650878906, 4.009314060211182, 5.950637340545654, 6.147370338439941, 5.8565826416015625, 6.214634895324707, 5.568198204040527, 4.666095733642578, 6.104249000549316, 6.427342891693115, 7.056862831115723, 6.9338603019714355, 6.938785552978516, 5.122682571411133, 5.409964084625244, 5.685764789581299, 6.739714622497559, 6.391420364379883, 6.287871837615967, 6.646695137023926, 6.147424221038818, 5.901540756225586, 5.911332607269287, 4.881685733795166, 4.7927021980285645, 5.865950584411621, 7.001310348510742, 5.32710599899292, 3.581149101257324, 4.068765640258789, 5.7427754402160645, 7.098674774169922, 5.628983974456787, 5.129239559173584, 5.152427673339844, 5.755058765411377, 5.370251655578613, 5.640206336975098, 5.865289211273193, 5.535647392272949, 5.816642761230469, 6.335737705230713, 6.143117904663086, 5.290981769561768, 6.553492069244385, 8.048151969909668, 8.172944068908691, 7.7099761962890625, 7.369358062744141, 6.594425678253174, 6.262547016143799, 5.541176795959473, 6.63990592956543, 6.229001045227051, 6.21240234375, 5.182264804840088, 3.7952568531036377, 4.193660259246826, 5.127664566040039, 6.395747184753418, 5.084907054901123, 4.0816192626953125, 4.188370227813721, 5.254359722137451, 4.404486179351807, 5.423271656036377, 5.418443202972412, 5.919275760650635, 5.311844825744629, 5.760250091552734, 5.8395094871521, 7.090662002563477, 6.840116500854492, 7.290201663970947, 8.087536811828613, 7.554398536682129, 7.1727375984191895, 7.4363298416137695, 7.447362422943115, 7.624937534332275, 7.2969489097595215, 6.686622142791748, 7.18377685546875, 6.004906177520752, 4.011320114135742, 5.462306976318359, 5.902461528778076, 5.479179382324219, 5.574256420135498, 5.304901123046875, 5.305188179016113, 5.771386623382568, 7.290172100067139, 7.41035270690918, 6.811525821685791, 7.197678565979004, 6.105539321899414, 5.627930164337158, 7.314689636230469, 8.196211814880371, 7.771305084228516, 7.7852373123168945, 8.664938926696777, 8.35826587677002, 7.584146022796631, 6.861762523651123, 7.177733898162842, 7.775291919708252, 7.022027015686035, 5.6774702072143555, 6.21116304397583, 4.279296398162842, 3.3361682891845703, 4.822925567626953, 5.892247676849365, 5.968629360198975, 5.540544033050537, 5.347984790802002, 4.8413801193237305, 5.144956111907959, 6.326257228851318, 6.576756954193115, 6.99117374420166, 6.903608798980713, 6.4361982345581055, 6.4938764572143555, 7.175684452056885, 7.05100679397583, 8.18691635131836, 8.271525382995605, 7.635316848754883, 6.419079303741455, 6.729733943939209, 6.638103008270264, 7.495283126831055, 7.518276691436768, 7.107579231262207, 6.875109672546387, 7.0159430503845215, 5.449305057525635, 3.7021677494049072, 3.124631881713867, 4.206836223602295, 5.044249534606934, 4.394752502441406, 3.814608573913574, 4.207125663757324, 5.145519733428955, 5.302469730377197, 5.322793960571289, 5.9346537590026855, 5.764462471008301, 4.652303218841553, 4.207223415374756, 4.574765682220459, 5.2940592765808105, 5.827138423919678, 6.018040657043457, 6.2735276222229, 6.141996383666992, 6.085160255432129, 6.029314041137695, 6.2959394454956055, 5.6645426750183105, 6.106163501739502, 6.580587387084961, 5.5540361404418945, 4.447570323944092, 3.139805316925049, 2.4779117107391357, 3.0794918537139893, 3.781352996826172, 4.62263822555542, 4.299754619598389, 3.5158557891845703, 3.902122974395752, 4.293700218200684, 4.563378810882568, 3.9626379013061523, 4.430231094360352, 4.807255744934082, 4.238834857940674, 3.989222764968872, 4.519537448883057, 4.98558235168457, 4.978889465332031, 4.5353474617004395, 4.468646049499512, 4.364501476287842, 4.812647342681885, 4.9364848136901855, 4.395218372344971, 4.184076309204102, 4.386107444763184, 4.307432174682617, 3.509586811065674, 2.588369369506836, 1.6290247440338135, 1.820181131362915, 2.4394774436950684, 3.6049513816833496, 3.479219913482666, 3.507190227508545, 2.5718133449554443, 3.197401285171509, 3.367600917816162, 2.5971474647521973, 3.1910359859466553, 1.950084924697876, 3.073899507522583, 2.632230520248413, 2.8250656127929688, 2.5768063068389893, 3.1225881576538086, 3.2557034492492676, 2.6084065437316895, 3.953616142272949, 3.5664267539978027, 3.874659538269043, 3.157395601272583, 3.6988556385040283, 3.5152339935302734, 3.370002031326294, 2.804281234741211, 2.6052732467651367, 2.5364420413970947, 4.23305082321167, 4.575035572052002, 5.232741355895996, 5.260436058044434, 5.520344257354736, 5.243646144866943, 4.57080078125, 5.331915378570557, 4.351975917816162, 4.34766149520874, 4.087956428527832, 4.803366184234619, 4.775470733642578, 5.036654949188232, 4.860584259033203, 3.849351644515991, 5.721797466278076, 4.201832294464111, 4.773813247680664, 4.521263599395752, 6.118666172027588, 4.628633975982666, 5.4820146560668945, 5.034707546234131, 5.228051662445068, 3.6135125160217285, 3.06959867477417, 4.300212860107422, 6.049013137817383, 6.612626075744629, 6.991073131561279, 7.074362754821777, 6.871330261230469, 7.791195869445801, 6.651984691619873, 7.367735862731934, 5.6821465492248535, 6.498567581176758, 6.081256866455078, 6.841070652008057, 6.109704971313477, 5.9316301345825195, 5.360274791717529, 5.156160354614258, 6.961223602294922, 5.831383228302002, 7.165175914764404, 5.759219169616699, 6.798361301422119, 5.904638290405273, 7.611114978790283, 6.827908515930176, 5.970785140991211, 5.356504440307617, 4.330716609954834, 4.317881107330322, 4.9949140548706055, 6.664022445678711, 5.906132698059082, 6.954840183258057, 6.432090759277344, 6.941292762756348, 5.62628698348999, 5.7806878089904785, 5.909638404846191, 5.759945869445801, 4.730091571807861, 5.536322116851807, 5.578447341918945, 5.681999206542969, 5.781140327453613, 5.698136329650879, 6.566158294677734, 5.375663757324219, 6.032840728759766, 5.979618072509766, 6.211777687072754, 5.830358982086182, 6.359557628631592, 7.858718395233154, 6.097078323364258, 4.302587509155273, 3.2308809757232666, 3.792686700820923, 5.137509346008301, 7.3196539878845215, 6.732630729675293, 7.483924388885498, 6.921759128570557, 7.360036849975586, 5.920222759246826, 6.90163516998291, 6.047861099243164, 5.494126796722412, 4.8274149894714355, 4.916089057922363, 6.088711261749268, 6.199184417724609, 6.711783409118652, 6.303412914276123, 6.7647809982299805, 5.109766006469727, 4.813972473144531, 5.0317301750183105, 5.01451301574707, 5.820626735687256, 6.358202934265137, 5.855424880981445, 6.2786736488342285, 5.070924282073975, 3.5601003170013428, 4.305041313171387, 5.337991714477539, 7.223237037658691, 6.461868762969971, 6.0649614334106445, 7.030102252960205, 7.221286296844482, 6.94264554977417, 6.84193754196167, 6.275444984436035, 5.852669715881348, 6.11543083190918, 6.746345043182373, 6.512068748474121, 5.916029453277588, 5.808703899383545, 5.076491832733154, 5.619414329528809, 4.825491905212402, 5.640461444854736, 5.73397970199585, 4.713445663452148, 4.9295878410339355, 6.909722328186035, 6.642988681793213, 5.8692402839660645, 4.809840202331543, 3.884585380554199, 4.244694232940674, 4.9964375495910645, 5.568999290466309, 6.438495635986328, 5.400754451751709, 6.424960613250732, 6.656604766845703, 7.112391948699951, 6.734701633453369, 7.797624111175537, 5.270213603973389, 6.075197696685791, 4.841062545776367, 5.9305901527404785, 4.810100078582764, 5.2064313888549805, 6.039071083068848, 4.848888397216797, 4.411630153656006, 4.719565391540527, 5.983728408813477, 5.4785308837890625, 6.600255012512207, 5.669789791107178, 6.5819292068481445, 6.381161212921143, 5.525050163269043, 3.8048598766326904, 3.728203535079956, 5.253143787384033, 5.875997066497803, 5.161924839019775, 5.274287223815918, 5.861683368682861, 6.58562707901001, 6.111908912658691, 7.350767135620117, 7.130097389221191, 5.896996974945068, 5.9442338943481445, 4.9521074295043945, 4.793316841125488, 4.462655544281006, 4.7256317138671875, 5.922093868255615, 5.869437217712402, 5.467459678649902, 5.5577826499938965, 6.3283820152282715, 6.04241418838501, 6.0402374267578125, 6.999571800231934, 6.94631814956665, 5.622797966003418, 4.665062427520752, 3.9548513889312744, 3.565049409866333, 4.05883264541626, 5.196711540222168, 5.563745975494385, 6.108557224273682, 5.610430717468262, 5.465828895568848, 6.241767883300781, 6.516080379486084, 5.503003120422363, 4.927421569824219, 5.277586936950684, 6.101133346557617, 5.754270076751709, 6.5887556076049805, 5.62329626083374, 5.480125427246094, 4.640561103820801, 4.632401943206787, 4.992262363433838, 6.033901214599609, 6.191141605377197, 6.868692874908447, 6.689826011657715, 6.8823089599609375, 6.411659240722656, 4.536527633666992, 4.176173686981201, 3.61881947517395, 4.268386363983154, 5.842155933380127, 4.8843464851379395, 5.054166793823242, 5.174766540527344, 6.057735919952393, 6.669088840484619, 6.414724826812744, 6.56980037689209, 5.983623027801514, 6.611996173858643, 6.170166015625, 4.9118733406066895, 4.431249141693115, 5.622559547424316, 5.823944091796875, 5.5795183181762695, 4.683004379272461, 5.232272148132324, 6.116623878479004, 4.780994892120361, 3.9615256786346436, 5.581725120544434, 6.671042442321777, 6.436016082763672, 4.487033367156982, 3.998946189880371, 4.1189985275268555, 4.829672813415527, 6.130354404449463, 6.281338691711426, 5.672235012054443, 5.619268417358398, 5.944034576416016, 7.926742076873779, 7.411784648895264, 6.634047031402588, 6.282435417175293, 5.917576789855957, 6.555554389953613, 5.664286136627197, 5.1870317459106445, 4.933623790740967, 5.076207637786865, 5.400704383850098, 5.90801477432251, 5.211676120758057, 5.642643928527832, 5.626004695892334, 4.556483268737793, 5.078183174133301, 5.899536609649658, 6.494004249572754, 4.563445568084717, 3.5759572982788086, 4.904354572296143, 5.093642234802246, 5.891510009765625, 5.001405239105225, 5.125195026397705, 5.0475029945373535, 5.758293151855469, 7.219270706176758, 7.245175838470459, 6.635662078857422, 6.575405120849609, 7.302464485168457, 5.536309242248535, 4.959950923919678, 6.296698093414307, 5.501183986663818, 6.526161193847656, 5.12518835067749, 6.744124889373779, 5.914833068847656, 6.097284317016602, 5.511956214904785, 5.880781650543213, 5.358139991760254, 6.05586576461792, 6.587759494781494, 4.662112236022949, 3.678795337677002, 4.110325813293457, 4.456624984741211, 6.747666835784912, 5.180371284484863, 5.337048530578613, 4.318326473236084, 5.809045791625977, 6.0149922370910645, 6.845261573791504, 7.462657928466797, 6.876585960388184, 6.600417613983154, 7.256227016448975, 5.428211212158203, 5.583662986755371, 5.593579292297363, 6.324775218963623, 4.941285610198975, 5.519745826721191, 5.937252044677734, 6.621631145477295, 6.118338108062744, 6.268028259277344, 4.951767921447754, 5.912738800048828, 6.372748851776123, 5.299360752105713, 3.5615293979644775, 4.858700752258301, 4.954799175262451, 6.232607841491699, 6.119061470031738, 4.85722017288208, 4.630349636077881, 6.308375358581543, 7.384640693664551, 5.843791484832764, 7.444056034088135, 7.890835762023926, 6.649724006652832, 6.442446708679199, 6.022110939025879, 6.755106449127197, 5.338396072387695, 4.935643672943115, 6.133255481719971, 5.8467535972595215, 5.352773666381836, 4.806055545806885, 6.470178604125977, 5.984463214874268, 5.515377044677734, 6.535125732421875, 6.259232044219971, 3.9347972869873047, 2.995284080505371, 4.657850742340088, 4.656694412231445, 6.300861835479736, 5.919225692749023, 4.873303413391113, 4.5471415519714355, 5.8742170333862305, 6.284717559814453, 6.095304012298584, 6.140560626983643, 6.538210868835449, 7.586133003234863, 6.522050857543945, 5.013876438140869, 6.3998236656188965, 5.817473888397217, 4.981197357177734, 4.646174907684326, 5.546266555786133, 6.477221965789795, 6.507657527923584, 6.947305679321289, 6.9282941818237305, 6.720187187194824, 6.762664794921875, 6.538905143737793, 3.666875123977661, 2.4250259399414062, 4.124913692474365, 4.822627544403076, 5.988933086395264, 6.042241096496582, 5.018126964569092, 4.756587505340576, 6.53529167175293, 6.642585754394531, 6.39649772644043, 6.934508323669434, 7.735030174255371, 7.067953586578369, 7.205525875091553, 6.367030620574951, 5.380581855773926, 5.0902485847473145, 5.2974371910095215, 5.449863910675049, 5.40911340713501, 6.371540069580078, 6.508179664611816, 7.178239822387695, 7.202481269836426, 6.258579730987549, 6.214417934417725, 5.240539073944092, 4.811100959777832, 3.1946356296539307, 5.314389228820801, 5.848794937133789, 6.922872066497803, 7.845587253570557, 6.429624557495117, 6.196964263916016, 6.401566982269287, 6.541981220245361, 5.535816192626953, 5.827823162078857, 6.059475421905518, 6.6586456298828125, 5.692990303039551, 5.422272682189941, 5.274773120880127, 5.360637664794922, 4.853048324584961, 5.24632453918457, 5.962443828582764, 6.926805019378662, 6.557147026062012, 6.4700541496276855, 6.102497577667236, 6.154221534729004, 6.664247512817383, 5.999223232269287, 4.541092872619629, 3.2749481201171875, 5.074200630187988, 5.884750843048096, 7.3323163986206055, 7.134554386138916, 6.5948076248168945, 5.821863174438477, 5.321116924285889, 5.870227336883545, 6.3180108070373535, 6.658960342407227, 6.326839923858643, 7.593204498291016, 6.651880741119385, 5.205160617828369, 4.778316497802734, 4.676100730895996, 4.035985946655273, 3.966705322265625, 4.857832431793213, 6.357905387878418, 5.201943874359131, 6.381137371063232, 6.494807243347168, 6.360866069793701, 5.055688858032227, 5.646205902099609, 3.647409439086914, 3.689354419708252, 5.1826043128967285, 6.941807746887207, 7.4115166664123535, 7.389983654022217, 7.647352695465088, 7.316143989562988, 6.6966023445129395, 7.079193592071533, 7.013117790222168, 6.509296417236328, 6.280436038970947, 7.288760662078857, 6.7706780433654785, 5.9992265701293945, 5.063681602478027, 4.790592670440674, 4.157373428344727, 3.8573179244995117, 5.341644763946533, 6.5297017097473145, 5.734516620635986, 5.7574687004089355, 5.554908275604248, 6.063414096832275, 5.040053844451904, 4.857736110687256, 3.3821115493774414, 3.4821667671203613, 4.217318058013916, 6.331300258636475, 7.341740608215332, 7.28691291809082, 7.029559135437012, 7.44614839553833, 6.447081565856934, 5.811785697937012, 6.547483921051025, 6.528771877288818, 6.439232349395752, 6.833719730377197, 5.483209609985352, 5.318072319030762, 4.625010013580322, 6.141871452331543, 4.054388999938965, 5.547638893127441, 6.014583110809326, 6.450551509857178, 5.851743221282959, 6.4388298988342285, 5.491521835327148, 5.385253429412842, 5.565124034881592, 7.163506507873535, 5.285592555999756, 4.130856037139893, 3.9420628547668457, 6.490227699279785, 7.059046745300293, 6.152727127075195, 5.9237895011901855, 5.560061931610107, 5.262287139892578, 4.841032981872559, 5.9786248207092285, 5.643496513366699, 6.279742240905762, 5.878668308258057, 5.4470696449279785, 4.3476948738098145, 4.203489303588867, 5.181057929992676, 5.392745494842529, 6.395063877105713, 5.846325874328613, 6.544388294219971, 5.260988235473633, 5.649571895599365, 4.724477767944336, 6.408632755279541, 6.171739101409912, 6.36179256439209, 4.498116970062256, 3.915921211242676, 3.1455016136169434, 4.735682487487793, 5.840709686279297, 5.760828495025635, 5.511059761047363, 5.571676254272461, 5.845731735229492, 5.372314929962158, 5.745456695556641, 5.716540336608887, 6.581647872924805, 5.518277645111084, 4.938152313232422, 5.699377536773682, 5.992726802825928, 5.033931732177734, 5.55715799331665, 6.915094375610352, 6.173858165740967, 4.72538423538208, 5.359269618988037, 5.661570072174072, 4.899990081787109, 3.741096258163452, 4.816345691680908, 6.554121017456055, 4.443190097808838, 3.4245080947875977, 3.2424428462982178, 5.308047294616699, 5.921600818634033, 5.679197311401367, 4.834432601928711, 4.97897481918335, 4.98273229598999, 5.3499836921691895, 4.322090148925781, 5.086452484130859, 5.658820629119873, 5.326589584350586, 5.10455322265625, 5.807855606079102, 5.268154621124268, 5.983611583709717, 5.775481224060059, 6.965382099151611, 7.302166938781738, 7.47577428817749, 6.557853698730469, 5.372196674346924, 5.2780561447143555, 5.927483558654785, 5.449111461639404, 6.581120014190674, 4.830733776092529, 3.857593536376953, 3.37870717048645, 4.184694290161133, 5.404455661773682, 4.716838359832764, 4.3131818771362305, 4.145821571350098, 4.466940879821777, 4.140425205230713, 4.765086650848389, 5.271856784820557, 5.25220251083374, 4.934767723083496, 4.915617942810059, 5.926507472991943, 6.204072952270508, 5.998836994171143, 7.378289699554443, 7.481125831604004, 6.504995822906494, 6.633052349090576, 7.063837051391602, 7.285035133361816, 6.410342216491699, 6.450805187225342, 6.313663959503174, 6.987986087799072, 4.964883804321289, 3.2966206073760986, 3.6469035148620605, 4.566598892211914, 6.271975040435791, 5.14954137802124, 3.981768846511841, 4.217648506164551, 6.29770565032959, 6.665767192840576, 6.01690673828125, 5.942914962768555, 7.324901103973389, 5.576412200927734, 4.814888000488281, 5.942615509033203, 7.85004997253418, 7.392184257507324, 7.548779487609863, 7.272041320800781, 7.439479827880859, 7.612602233886719, 6.492390155792236, 6.31531286239624, 6.236174583435059, 6.5274481773376465, 6.456633567810059, 5.606181621551514, 3.1217355728149414, 2.841261863708496, 3.9256510734558105, 4.179581642150879, 5.422206401824951, 5.548830509185791, 5.422524929046631, 4.116566181182861, 4.620922565460205, 5.274141788482666, 5.2273783683776855, 5.399307727813721, 6.933517932891846, 7.0532002449035645, 6.9969611167907715, 5.196948051452637, 5.955909729003906, 7.722466945648193, 7.46467924118042, 6.246426105499268, 6.074862480163574, 6.651462554931641, 6.395002841949463, 6.688113212585449, 6.074520587921143, 5.981489181518555, 6.116918087005615, 6.840698719024658, 4.612312316894531, 4.403461933135986, 3.352694034576416, 4.027602195739746, 4.813412666320801, 3.1179311275482178, 3.568469762802124, 4.261569976806641, 5.139640808105469, 5.193702220916748, 5.550581932067871, 4.690676689147949, 4.670229911804199, 5.11372709274292, 4.6012115478515625, 3.966803550720215, 5.2866315841674805, 5.973581314086914, 5.0052971839904785, 5.845456600189209, 5.921274662017822, 6.153898239135742, 5.144405364990234, 5.7932939529418945, 5.755357265472412, 6.262899875640869, 5.554238319396973, 5.595164775848389, 3.4360175132751465, 2.5925300121307373, 2.9065072536468506, 2.939159631729126, 3.960440158843994, 4.387228012084961, 4.1395440101623535, 3.5846688747406006, 4.14247989654541, 4.982527256011963, 4.714986801147461, 3.771118402481079, 4.312075614929199, 4.8205366134643555, 4.471306324005127, 3.944287061691284, 4.443303108215332, 5.506750583648682, 4.947946071624756, 4.623227596282959, 4.3865156173706055, 4.7708740234375, 4.600074768066406, 5.573716163635254, 4.480593204498291, 4.638543128967285, 4.073867321014404, 4.222064018249512, 3.310990571975708, 2.184537887573242, 2.305915355682373, 3.1182985305786133, 3.4220492839813232, 3.5356714725494385, 3.205826759338379, 4.004072189331055, 4.1276702880859375, 3.7424561977386475, 3.4164161682128906, 2.9689505100250244, 3.7019448280334473, 3.153467893600464, 3.7577362060546875, 3.557225465774536, 2.7985775470733643, 3.0682592391967773, 3.3299331665039062, 2.951622724533081, 3.885267496109009, 3.9274606704711914, 4.06892728805542, 4.20734167098999, 4.623724937438965, 4.247724533081055, 4.475671768188477, 4.4131388664245605, 3.3258450031280518, 2.4275314807891846, 2.7301526069641113, 3.574280261993408, 4.291805744171143, 3.833486795425415, 5.025075912475586, 5.144225597381592, 4.347962379455566, 4.290290832519531, 3.370866060256958, 4.253112316131592, 3.2110860347747803, 3.3084497451782227, 3.9346375465393066, 3.6001291275024414, 4.263237476348877, 4.084315299987793, 4.514383316040039, 4.649289608001709, 4.4600067138671875, 4.473768711090088, 4.565999984741211, 4.615106105804443, 4.1246538162231445, 4.951481819152832, 5.08793830871582, 4.975342750549316, 3.759204626083374, 2.594024419784546, 3.223982095718384, 4.595021724700928, 4.73162841796875, 5.516260623931885, 5.923738956451416, 5.802789688110352, 5.288072109222412, 4.825820446014404, 5.28016471862793, 4.247574806213379, 4.103572368621826, 4.3469319343566895, 4.202981948852539, 4.963171482086182, 5.319429397583008, 4.833431720733643, 4.384929180145264, 5.651097297668457, 4.627598762512207, 4.550426483154297, 4.737124443054199, 4.457104206085205, 4.3527655601501465, 4.931556224822998, 4.984165191650391, 5.206152439117432, 3.484241247177124, 2.7309813499450684, 3.66801381111145, 4.529402732849121, 5.747097969055176, 5.848830223083496, 5.467125415802002, 5.3772664070129395, 5.8012213706970215, 5.56902551651001, 4.957486629486084, 4.797605991363525, 4.548986911773682, 4.33116340637207, 4.961539268493652, 4.365774154663086, 5.554441452026367, 4.500913143157959, 4.558257579803467, 4.7482147216796875, 4.381684303283691, 4.129291534423828, 4.100987911224365, 4.248007774353027, 4.090965270996094, 5.086975574493408, 4.651574611663818, 4.736343860626221, 3.9248504638671875, 2.5163192749023438, 3.480300188064575, 4.83822774887085, 5.88153076171875, 4.821375370025635, 5.145127296447754, 5.3703460693359375, 6.4366455078125, 5.222613334655762, 5.266122817993164, 5.955915451049805, 4.630368709564209, 4.619026184082031, 4.377854347229004, 4.240286827087402, 4.097581386566162, 4.745107173919678, 4.397304534912109, 4.39797830581665, 4.6513495445251465, 3.8561909198760986, 4.100291728973389, 4.222657203674316, 4.164670467376709, 4.547095775604248, 5.924866676330566, 4.785754680633545, 3.6178267002105713, 2.5570266246795654, 3.7454380989074707, 4.696584224700928, 4.676915168762207, 4.530544757843018, 5.174973487854004, 5.170529842376709, 5.205628395080566, 5.248279571533203, 5.51559591293335, 5.072877407073975, 5.249053478240967, 3.8148715496063232, 4.521448135375977, 4.34279203414917, 4.483921051025391, 4.969057559967041, 3.91123628616333, 4.5997700691223145, 3.5478200912475586, 3.8109450340270996, 4.712825298309326, 4.733892440795898, 5.144191265106201, 5.794478893280029, 4.964409828186035, 5.3982086181640625, 4.075378894805908, 2.3950743675231934, 3.168083906173706, 3.240838050842285, 4.525827884674072, 4.598273754119873, 4.481533527374268, 4.545052528381348, 5.14893102645874, 5.72321081161499, 4.635143756866455, 5.605555057525635, 4.518891334533691, 3.584068775177002, 4.44679069519043, 4.278170108795166, 5.00907039642334, 4.505765914916992, 4.303533554077148, 4.211798667907715, 3.3013916015625, 3.7561116218566895, 4.771084308624268, 4.595510482788086, 4.809118270874023, 5.61983585357666, 5.735625743865967, 5.284539699554443, 4.134817123413086, 3.0986454486846924, 2.586095094680786, 3.256218910217285, 4.277406215667725, 4.249038219451904, 3.449721574783325, 4.328751564025879, 4.712034702301025, 5.005138874053955, 5.233835697174072, 5.285775184631348, 3.84444260597229, 4.450531005859375, 3.941673994064331, 5.116347789764404, 3.959017276763916, 4.036273956298828, 3.8770978450775146, 3.867072582244873, 3.818068742752075, 4.158842086791992, 5.168314456939697, 4.314761161804199, 4.563371181488037, 4.9271559715271, 5.427679061889648, 4.589174270629883, 4.67737340927124, 2.9403414726257324, 3.1024880409240723, 4.1210150718688965, 4.4143290519714355, 3.787043571472168, 4.329903602600098, 4.479672431945801, 5.274299621582031, 4.942356586456299, 5.770450115203857, 4.480132102966309, 4.845378398895264, 4.077332496643066, 4.282486915588379, 3.9769811630249023, 4.469413757324219, 3.907289505004883, 3.9181761741638184, 4.4647746086120605, 3.9260449409484863, 4.390303611755371, 4.723197937011719, 4.487076282501221, 3.712139368057251, 4.921513557434082, 4.8512187004089355, 4.929422378540039, 3.9915106296539307, 3.0012927055358887, 3.358272075653076, 3.9030709266662598, 4.22980260848999, 4.331634998321533, 4.098206043243408, 4.58497953414917, 4.507771015167236, 5.202462196350098, 5.261161804199219, 5.595211982727051, 4.847504615783691, 4.622566223144531, 4.245504379272461, 4.251977920532227, 3.8673806190490723, 3.652147054672241, 4.250616073608398, 4.202023029327393, 5.217855453491211, 4.473761081695557, 4.459585189819336, 4.198654651641846, 4.346194744110107, 3.7078046798706055, 4.911643981933594, 4.910889625549316, 3.9452340602874756, 3.111100673675537, 3.6190366744995117, 4.341714382171631, 4.707261562347412, 4.139110088348389, 4.551066875457764, 4.290125846862793, 5.125731945037842, 4.788763046264648, 5.990078449249268, 5.766378879547119, 4.629421710968018, 4.669873237609863, 5.1399407386779785, 4.220612049102783, 3.7787973880767822, 4.926445007324219, 3.840487241744995, 4.940581798553467, 4.1748552322387695, 4.111591815948486, 4.161664009094238, 4.476808071136475, 3.5760512351989746, 3.807723045349121, 4.553632736206055, 5.495255947113037, 3.9353318214416504, 2.6801466941833496, 3.9356164932250977, 4.43898344039917, 4.4287543296813965, 4.978635311126709, 4.102325916290283, 4.153108596801758, 4.138741493225098, 6.033558368682861, 6.00808572769165, 6.187116622924805, 5.31141996383667, 4.928264617919922, 5.66780424118042, 4.73829984664917, 4.612626552581787, 4.200693607330322, 4.667388439178467, 4.510639667510986, 4.622631072998047, 3.959284782409668, 4.903141021728516, 4.401079177856445, 3.6775853633880615, 4.069443702697754, 4.934223175048828, 5.197079658508301, 3.7610678672790527, 2.2693471908569336, 3.7808892726898193, 3.8327994346618652, 4.661144733428955, 3.4040110111236572, 4.100098133087158, 3.2662556171417236, 4.092408657073975, 5.478592872619629, 6.028054714202881, 5.025519847869873, 6.026076316833496, 6.0908050537109375, 4.807208061218262, 5.701413154602051, 4.307153224945068, 4.4985480308532715, 4.372072696685791, 3.9127588272094727, 5.030938148498535, 4.662958145141602, 4.812201976776123, 4.390402793884277, 5.590086936950684, 5.023173809051514, 4.795589447021484, 5.298187732696533, 3.7805275917053223, 2.588887929916382, 3.4605109691619873, 4.325385093688965, 4.132040977478027, 3.7622203826904297, 3.615589141845703, 3.49444842338562, 4.774247646331787, 4.930952072143555, 5.284597873687744, 5.657418727874756, 5.687229156494141, 4.792446613311768, 6.007419109344482, 4.633792400360107, 4.359095096588135, 4.748979091644287, 4.30984354019165, 4.419766426086426, 4.690850734710693, 5.00634241104126, 4.894705772399902, 4.725719451904297, 5.522128582000732, 4.663257598876953, 4.747843265533447, 4.965860366821289, 4.086671829223633, 2.2195334434509277, 3.911452293395996, 3.7064647674560547, 4.758423328399658, 4.670252323150635, 3.6675302982330322, 3.7056689262390137, 4.32052755355835, 5.158687591552734, 4.369656562805176, 5.282547473907471, 4.852125644683838, 5.29576301574707, 4.86082649230957, 4.49406099319458, 4.351078510284424, 3.818807601928711, 3.7212133407592773, 4.719020843505859, 4.462528705596924, 4.9275736808776855, 5.11150598526001, 5.729186534881592, 5.244698524475098, 5.362354755401611, 4.638376712799072, 5.3549113273620605, 3.100710391998291, 1.8449201583862305, 4.013524532318115, 4.204029560089111, 4.99406623840332, 5.175877571105957, 4.92113733291626, 3.4221959114074707, 4.376573085784912, 5.040057182312012, 5.046222686767578, 4.244409561157227, 5.169468402862549, 5.796197891235352, 5.375901222229004, 4.334911823272705, 4.6163716316223145, 4.053969383239746, 3.4445126056671143, 3.4284708499908447, 4.4315714836120605, 4.8294196128845215, 5.364717960357666, 5.014557361602783, 6.1656975746154785, 4.775837421417236, 4.802776336669922, 4.850539207458496, 2.6689224243164062, 1.7936416864395142, 4.302183151245117, 5.1026997566223145, 5.585356712341309, 6.678098678588867, 5.685648441314697, 4.611860275268555, 5.50154972076416, 5.659700870513916, 4.683506965637207, 5.0010857582092285, 5.039711952209473, 5.115720748901367, 5.80291223526001, 4.513110160827637, 3.7463152408599854, 3.837904453277588, 3.0345089435577393, 3.706993818283081, 4.504899501800537, 5.02833890914917, 5.118983745574951, 5.402599811553955, 5.50236701965332, 5.022620677947998, 4.204841136932373, 4.369406223297119, 3.8421318531036377, 1.8908030986785889, 4.340684413909912, 5.436947345733643, 6.254278182983398, 5.831719398498535, 5.836982727050781, 5.348904132843018, 4.625415325164795, 5.234029769897461, 4.734159469604492, 5.3113179206848145, 5.6476850509643555, 6.138869285583496, 5.9035539627075195, 4.500932216644287, 3.6785542964935303, 3.477562665939331, 3.3855507373809814, 4.166347980499268, 4.088742256164551, 4.630932331085205, 5.171034336090088, 4.844748020172119, 4.884273052215576, 4.593628883361816, 4.760832786560059, 4.356991291046143, 3.7031941413879395, 3.027892589569092, 4.071845054626465, 5.347423553466797, 6.006045818328857, 5.825985431671143, 6.269681930541992, 4.9846673011779785, 4.893629550933838, 5.1192121505737305, 5.068217754364014, 5.460263729095459, 5.265946388244629, 5.337202072143555, 5.00934362411499, 3.8231303691864014, 3.459944009780884, 3.365903377532959, 3.789968252182007, 3.545677661895752, 4.028811454772949, 5.003890514373779, 4.185053825378418, 4.474549770355225, 3.6817071437835693, 4.290318012237549, 4.236603736877441, 4.689701557159424, 4.051357269287109, 3.049414873123169, 3.2950241565704346, 4.513494491577148, 5.768505573272705, 5.078200817108154, 5.179104804992676, 5.5041823387146, 4.795856952667236, 4.921712875366211, 5.187330722808838, 5.266923427581787, 4.944089889526367, 5.173942565917969, 4.75795316696167, 4.068870544433594, 3.2020866870880127, 3.760526180267334, 4.262479305267334, 3.4018497467041016, 4.503255844116211, 4.506337642669678, 4.627363681793213, 3.3525846004486084, 3.6510612964630127, 3.6747546195983887, 4.3866801261901855, 4.556434154510498, 4.13503360748291, 3.1856167316436768, 2.9000258445739746, 4.514624118804932, 5.4967217445373535, 4.6821441650390625, 4.6815409660339355, 5.037972450256348, 4.026986598968506, 3.8506052494049072, 4.675734996795654, 4.514701843261719, 4.116361618041992, 4.420265197753906, 4.1060099601745605, 3.342695474624634, 3.6629087924957275, 4.914423942565918, 3.823214530944824, 5.091236114501953, 4.683544635772705, 5.75856351852417, 4.250621318817139, 4.680034637451172, 4.224415302276611, 3.813941717147827, 4.214332103729248, 5.364980697631836, 4.552746295928955, 2.4773926734924316, 2.84157395362854, 3.5693206787109375, 4.920442581176758, 4.312366962432861, 3.7959864139556885, 3.9749324321746826, 3.8931384086608887, 4.124515533447266, 4.362123012542725, 3.754873037338257, 4.313760757446289, 3.8803439140319824, 3.6689703464508057, 3.7133874893188477, 4.488057613372803, 4.008059978485107, 5.677091598510742, 5.275258541107178, 5.794383525848389, 5.225020408630371, 4.6421356201171875, 4.649028301239014, 3.9947707653045654, 4.594859600067139, 4.637682914733887, 5.07480525970459, 3.892688751220703, 2.579956293106079, 2.8363988399505615, 3.7126762866973877, 4.857105255126953, 4.42393159866333, 3.340010404586792, 3.102919340133667, 3.834529399871826, 3.9436073303222656, 3.469749689102173, 4.429917335510254, 4.9324846267700195, 4.201483726501465, 4.095059871673584, 4.855947017669678, 4.670700550079346, 4.9609246253967285, 5.436530113220215, 5.907809257507324, 5.7222466468811035, 4.867691993713379, 4.901742458343506, 4.722585201263428, 4.627860069274902, 4.10757303237915, 4.756816387176514, 4.329402923583984, 3.9948370456695557, 2.5186471939086914, 3.0557990074157715, 4.003150463104248, 4.113636016845703, 3.5360450744628906, 2.725651264190674, 2.9158668518066406, 3.4083051681518555, 3.9501492977142334, 3.5688729286193848, 4.482518196105957, 4.064723491668701, 4.599342346191406, 3.989957809448242, 4.086991310119629, 5.593269348144531, 5.827110767364502, 4.831524848937988, 5.7459797859191895, 5.760595321655273, 5.106204032897949, 4.5688910484313965, 4.6401472091674805, 5.002415657043457, 5.635335445404053, 4.333273887634277, 4.727575302124023, 4.161489009857178, 2.5097031593322754, 3.327970504760742, 3.8630523681640625, 3.9519102573394775, 3.2875723838806152, 3.800563335418701, 3.3556435108184814, 3.9648730754852295, 4.461021900177002, 5.475314617156982, 4.390799522399902, 5.241973400115967, 4.9378814697265625, 3.6359822750091553, 4.944667816162109, 5.3184123039245605, 4.92277717590332, 5.851354598999023, 5.7804412841796875, 5.052130222320557, 4.866611003875732, 5.463432312011719, 5.529879570007324, 5.812661647796631, 5.071495532989502, 4.655670642852783, 5.054930210113525, 4.0168328285217285, 2.0817365646362305, 3.1726996898651123, 3.4988133907318115, 4.37396764755249, 4.518693447113037, 3.931539297103882, 3.965726137161255, 4.725490570068359, 5.361425399780273, 4.582620143890381, 4.711440086364746, 5.3731842041015625, 4.774385452270508, 4.911694526672363, 5.013725757598877, 5.521963119506836, 5.756551742553711, 6.037363052368164, 5.374780178070068, 5.398771286010742, 5.261768817901611, 5.40809965133667, 5.871983528137207, 5.20792293548584, 5.027132034301758, 4.921287536621094, 5.069891929626465, 3.583627939224243, 2.38512921333313, 2.7987446784973145, 3.1332240104675293, 3.9983980655670166, 4.2191033363342285, 4.173734188079834, 3.4433021545410156, 4.106842041015625, 4.865467548370361, 4.905538082122803, 4.307923316955566, 4.1099066734313965, 4.544340133666992, 4.216678619384766, 3.637288808822632, 4.309953212738037, 5.328671455383301, 5.368603706359863, 5.01764440536499, 4.75404167175293, 4.963953495025635, 5.113483905792236, 5.130964279174805, 5.0388946533203125, 4.094270706176758, 5.0021443367004395, 4.712730884552002, 3.012816905975342, 2.4666712284088135, 1.770695686340332, 2.421968698501587, 3.0363380908966064, 2.657294511795044, 2.877387046813965, 2.7010064125061035, 2.535569190979004, 2.929832696914673, 3.439067840576172, 3.0286736488342285, 2.4344754219055176, 3.1476902961730957, 3.347642660140991, 2.5837442874908447, 2.88210391998291, 3.641101837158203, 3.390200614929199, 2.9968276023864746, 3.0551793575286865, 3.557533025741577, 2.9147300720214844, 3.1849656105041504, 2.9947400093078613, 3.355125665664673, 3.067201614379883, 3.320924758911133, 2.8612723350524902, 1.5101311206817627, 2.2596185207366943, 3.8259634971618652, 3.7987892627716064, 4.342177867889404, 4.605010032653809, 3.845865488052368, 4.533335208892822, 3.758153200149536, 4.484989166259766, 3.656306028366089, 3.502963066101074, 3.857283115386963, 3.806344747543335, 4.178244590759277, 3.6682441234588623, 3.8011560440063477, 3.430368661880493, 3.537898540496826, 4.042107582092285, 4.705342769622803, 4.640519142150879, 4.680601119995117, 4.593477249145508, 4.731550216674805, 5.085261344909668, 4.691473007202148, 3.75431227684021, 2.9003498554229736, 3.590433359146118, 4.411561012268066, 5.711755275726318, 5.826210975646973, 5.822478771209717, 5.570970058441162, 5.134435653686523, 5.73811674118042, 5.081596374511719, 4.192923545837402, 4.6890788078308105, 3.9741945266723633, 5.521577835083008, 5.749981880187988, 5.746663570404053, 5.2557477951049805, 5.120477199554443, 4.87071418762207, 4.207345008850098, 5.6607279777526855, 5.39918327331543, 5.717933177947998, 5.910524845123291, 5.787963390350342, 6.491803169250488, 5.801267147064209, 4.692831993103027, 3.379152774810791, 3.8047311305999756, 5.66839075088501, 6.679421424865723, 6.653820991516113, 6.800704002380371, 7.178524971008301, 7.279336929321289, 6.739055633544922, 6.417634010314941, 5.603877544403076, 5.056741237640381, 5.491323947906494, 5.084311008453369, 5.990920543670654, 6.050230503082275, 5.9169697761535645, 5.952983379364014, 6.448246002197266, 5.509199142456055, 5.651298999786377, 6.074610710144043, 5.828222274780273, 5.898611068725586, 6.332442760467529, 6.41141939163208, 7.244515419006348, 5.80145263671875, 4.4946699142456055, 4.330788612365723, 5.630764007568359, 6.182592391967773, 6.417342185974121, 6.651271343231201, 7.151371955871582, 7.001441955566406, 6.307281494140625, 6.852805137634277, 5.774031639099121, 5.363046646118164, 5.271822929382324, 5.142293453216553, 5.092041969299316, 6.314934253692627, 5.70739221572876, 6.090381145477295, 6.70340633392334, 5.586370944976807, 6.0917649269104, 5.359841346740723, 5.899731636047363, 4.857661247253418, 6.491439342498779, 6.018923759460449, 5.910971164703369, 4.897059440612793, 3.973564624786377, 4.439949035644531, 5.7693657875061035, 6.78255033493042, 7.262465476989746, 7.2053728103637695, 7.15131139755249, 7.58217716217041, 7.232860088348389, 7.3125433921813965, 7.060993194580078, 5.252350807189941, 5.368793964385986, 5.210685729980469, 5.519423007965088, 6.637077331542969, 6.066563606262207, 5.966216087341309, 5.447152614593506, 4.77315092086792, 4.9308576583862305, 5.60943603515625, 5.569846153259277, 5.840943813323975, 5.564228534698486, 6.2168779373168945, 6.000129222869873, 4.997090816497803, 3.602156400680542, 3.4951679706573486, 5.585751533508301, 6.260626316070557, 5.760174751281738, 5.849372863769531, 5.964081287384033, 7.22121524810791, 6.5507707595825195, 6.876357078552246, 7.294635772705078, 5.780330657958984, 5.905324459075928, 5.7516350746154785, 5.419644832611084, 5.458258628845215, 5.489778995513916, 5.734495639801025, 5.251583576202393, 5.597023010253906, 5.190120220184326, 5.560302257537842, 5.65922737121582, 6.198793888092041, 6.620186805725098, 6.575484275817871, 6.38363790512085, 5.230599403381348, 3.9772415161132812, 4.1129150390625, 5.346580505371094, 6.604031562805176, 5.414260387420654, 5.931105613708496, 6.180173873901367, 6.677007675170898, 6.9170708656311035, 6.860172271728516, 6.422210216522217, 6.288811206817627, 5.01052188873291, 6.332238674163818, 5.594623565673828, 5.551830768585205, 5.758829593658447, 4.9035234451293945, 4.9255218505859375, 4.095311641693115, 5.27992057800293, 5.440379619598389, 5.5103864669799805, 6.106512546539307, 7.083251953125, 6.570859432220459, 7.017685413360596, 5.582029342651367, 3.994717597961426, 3.6997385025024414, 4.758533954620361, 4.976016521453857, 5.084524631500244, 4.769947052001953, 5.740346908569336, 5.676132678985596, 7.1419172286987305, 6.271707057952881, 7.150979995727539, 5.698321342468262, 5.069448471069336, 4.4473066329956055, 5.056722164154053, 4.89533805847168, 5.522885799407959, 5.938572406768799, 5.6263227462768555, 5.310385704040527, 5.001176357269287, 6.043594837188721, 4.995656967163086, 6.118662357330322, 6.5125041007995605, 6.908053874969482, 6.761977195739746, 6.083596229553223, 4.1827073097229, 3.5387260913848877, 4.262270450592041, 5.713116645812988, 4.976958751678467, 5.153941631317139, 5.414290428161621, 5.574161052703857, 6.122522354125977, 6.685029029846191, 5.879396915435791, 5.692380428314209, 5.307118892669678, 5.25670862197876, 5.9238739013671875, 5.441179275512695, 5.486061096191406, 5.210586071014404, 5.4075093269348145, 4.686741828918457, 5.100455284118652, 5.652620315551758, 5.804511547088623, 5.002224922180176, 6.037136554718018, 6.389926433563232, 6.278001308441162, 6.0957932472229, 4.9702935218811035, 4.268470764160156, 5.410797595977783, 5.225526809692383, 5.4276604652404785, 4.996326446533203, 5.7889485359191895, 5.961798191070557, 6.827998161315918, 7.949127674102783, 6.969571113586426, 6.231218338012695, 5.799213409423828, 5.020604133605957, 4.126367092132568, 5.807482719421387, 4.954270362854004, 5.734592437744141, 5.316843032836914, 5.460434436798096, 5.366098880767822, 5.713369846343994, 4.809570789337158, 4.587414264678955, 4.741762638092041, 5.657619953155518, 5.800344944000244, 5.246712684631348, 4.739529609680176, 4.365137577056885, 5.019604682922363, 6.507926940917969, 5.35286808013916, 5.275140762329102, 4.592615127563477, 6.171617031097412, 6.547144412994385, 6.844266891479492, 7.3468546867370605, 6.3834123611450195, 6.60217809677124, 6.251053333282471, 4.872798919677734, 5.0629448890686035, 5.162220001220703, 5.125766277313232, 5.478367805480957, 5.3665876388549805, 6.076330184936523, 6.220290660858154, 5.841416358947754, 4.949676513671875, 5.3567214012146, 6.09560489654541, 5.774952411651611, 4.772394180297852, 4.26394510269165, 4.642927646636963, 5.723219871520996, 5.532679080963135, 5.635772705078125, 4.874736785888672, 5.363307476043701, 5.883899688720703, 7.157129287719727, 7.127771377563477, 7.690486907958984, 7.670876979827881, 6.578476428985596, 6.869747161865234, 5.356778621673584, 5.656909465789795, 5.689915657043457, 5.191893577575684, 5.718181133270264, 5.850312232971191, 5.520639896392822, 5.181756496429443, 5.597987651824951, 5.691089630126953, 5.042202949523926, 5.831493854522705, 5.818785190582275, 4.678111553192139, 4.209733486175537, 4.611418724060059, 5.508564472198486, 5.668251037597656, 5.192384243011475, 4.95966100692749, 4.835941791534424, 5.553530216217041, 6.5743207931518555, 6.750635623931885, 7.45160436630249, 6.722748279571533, 7.237977027893066, 6.48019552230835, 5.900121688842773, 5.836817264556885, 5.69996976852417, 5.608921051025391, 5.332246780395508, 6.2416558265686035, 6.185637950897217, 6.164893627166748, 6.260805606842041, 5.803343296051025, 5.518263816833496, 6.03466272354126, 6.375636100769043, 4.973018169403076, 3.7036080360412598, 4.431779384613037, 5.416467666625977, 6.260262489318848, 4.397424697875977, 4.540664196014404, 4.120774269104004, 5.3920207023620605, 5.897825241088867, 7.084978103637695, 7.005732536315918, 7.956323146820068, 7.116064548492432, 7.103538990020752, 6.612767219543457, 5.823145866394043, 5.337799072265625, 5.9021124839782715, 5.1277570724487305, 5.974635601043701, 5.905969619750977, 6.277338981628418, 5.880293369293213, 6.486996650695801, 5.626645088195801, 6.690727233886719, 5.841369152069092, 4.788966178894043, 3.3970296382904053, 4.7112932205200195, 5.928769111633301, 6.57261848449707, 5.8135786056518555, 4.319028854370117, 4.496277809143066, 5.391851902008057, 5.657822608947754, 5.655633449554443, 6.247522354125977, 6.508023262023926, 6.608287334442139, 5.720879554748535, 6.294632911682129, 5.841723918914795, 4.891827583312988, 4.358539581298828, 5.404642581939697, 5.879952907562256, 6.952510833740234, 6.2789506912231445, 7.169573783874512, 6.852559566497803, 6.237860679626465, 6.689693927764893, 5.80529260635376, 4.251491546630859, 3.259812831878662, 4.746958255767822, 5.654055595397949, 6.862529754638672, 6.3666090965271, 4.791133880615234, 4.9492387771606445, 6.0244550704956055, 5.926578521728516, 6.24143123626709, 7.009821891784668, 6.849125862121582, 7.526318550109863, 6.726771831512451, 5.870705604553223, 5.829544544219971, 4.648702621459961, 4.583102703094482, 4.850213050842285, 5.531126976013184, 6.310903072357178, 7.0032267570495605, 7.094855308532715, 6.77028751373291, 6.181051254272461, 5.499756813049316, 6.411975383758545, 4.087182521820068, 3.3965940475463867, 5.573365211486816, 7.113455295562744, 7.9520063400268555, 8.006471633911133, 6.79148530960083, 5.577023506164551, 5.878421306610107, 5.425704002380371, 5.30606746673584, 5.716070652008057, 6.2659101486206055, 6.377816677093506, 6.091614723205566, 5.462351322174072, 5.302268981933594, 4.764718055725098, 4.261207103729248, 4.725074768066406, 5.122354984283447, 6.381526470184326, 6.300454139709473, 6.855804443359375, 6.70786190032959, 6.8112711906433105, 6.179182052612305, 5.973648548126221, 4.5736823081970215, 2.8135664463043213, 4.4993696212768555, 6.470829486846924, 7.095907688140869, 8.163533210754395, 7.062888145446777, 6.110694408416748, 6.584196090698242, 6.845524311065674, 6.754903793334961, 7.319978713989258, 7.107710361480713, 7.250127792358398, 6.718059539794922, 5.734012603759766, 4.93247127532959, 4.980750560760498, 3.8225772380828857, 3.951571464538574, 5.247668743133545, 5.292253494262695, 6.138664722442627, 5.636540412902832, 6.142813205718994, 6.1530680656433105, 5.834905624389648, 6.147452354431152, 5.151099681854248, 3.3461592197418213, 4.687072277069092, 7.180446624755859, 8.083854675292969, 7.9112396240234375, 8.272822380065918, 6.8569207191467285, 6.390264511108398, 6.485429763793945, 5.903200149536133, 6.206223011016846, 6.393052577972412, 7.047804832458496, 6.64866304397583, 6.033065319061279, 4.891055107116699, 5.288128852844238, 4.073400974273682, 4.874350070953369, 5.142141342163086, 5.907967567443848, 5.145247459411621, 5.795113563537598, 5.146491050720215, 5.928699970245361, 5.226656436920166, 5.867537498474121, 5.068057060241699, 4.6323018074035645, 3.6547651290893555, 5.893162727355957, 6.6326727867126465, 6.53177547454834, 7.3400726318359375, 6.214659690856934, 5.701079845428467, 6.150691032409668, 6.405920505523682, 6.130675315856934, 6.339057922363281, 6.354691982269287, 5.978147029876709, 5.159641742706299, 5.186783313751221, 4.636690616607666, 4.560381889343262, 4.684715747833252, 5.975772380828857, 5.902935028076172, 5.772071361541748, 5.3377275466918945, 4.890608310699463, 5.034196853637695, 5.547327041625977, 6.594407081604004, 5.498748779296875, 4.925329685211182, 3.5515103340148926, 5.764829635620117, 6.851766109466553, 6.1527419090271, 6.426011085510254, 6.493737697601318, 5.6642584800720215, 5.779390811920166, 6.010564804077148, 5.728469371795654, 5.817399501800537, 5.874788761138916, 5.11094331741333, 5.472777366638184, 4.443881034851074, 5.909635543823242, 5.158259391784668, 6.076994895935059, 6.322286128997803, 6.086008071899414, 5.520216941833496, 4.946967124938965, 4.958117961883545, 4.668481349945068, 4.817471504211426, 5.732616901397705, 4.793954849243164, 4.431521892547607, 3.046452760696411, 4.899564266204834, 5.964049339294434, 5.283137798309326, 4.733704566955566, 5.335294723510742, 4.667373180389404, 4.4806108474731445, 5.385721206665039, 5.4570465087890625, 5.454165458679199, 5.15831995010376, 5.674615383148193, 5.4664716720581055, 5.7158637046813965, 5.747880935668945, 6.13804292678833, 6.217785835266113, 5.612426280975342, 6.694894313812256, 5.8737921714782715, 6.316871166229248, 5.124729633331299, 5.236598014831543, 5.010481357574463, 5.808238506317139, 4.995364189147949, 4.223111152648926, 3.8821535110473633, 4.533263206481934, 5.5773749351501465, 4.852118015289307, 4.560359477996826, 4.81665563583374, 5.356892108917236, 5.159611225128174, 5.585931301116943, 5.472106456756592, 5.708464622497559, 4.490475177764893, 4.611479759216309, 5.032349109649658, 5.94249153137207, 5.648366451263428, 6.729957580566406, 7.668066501617432, 7.337120532989502, 6.673920154571533, 6.317928314208984, 6.363912582397461, 6.487442970275879, 5.332395553588867, 5.586948871612549, 5.8104567527771, 4.775362491607666, 3.6910400390625, 3.557204246520996, 4.648807048797607, 5.086191177368164, 5.394388198852539, 4.11652135848999, 3.8735191822052, 3.6657285690307617, 4.6125407218933105, 4.463630199432373, 5.5662922859191895, 6.125085830688477, 5.302366256713867, 5.649009704589844, 6.064951419830322, 5.953551769256592, 6.40689754486084, 6.98098611831665, 6.910345554351807, 6.24462890625, 6.459563732147217, 6.457147598266602, 6.6412739753723145, 6.103631496429443, 6.282232761383057, 6.0888671875, 6.315493106842041, 4.8827643394470215, 3.917959451675415, 3.9506232738494873, 5.001642227172852, 5.631311416625977, 4.741114616394043, 4.545072078704834, 4.591333389282227, 5.752488613128662, 5.662208080291748, 5.888435363769531, 6.273955345153809, 5.709299087524414, 5.657196998596191, 5.42549467086792, 6.1233015060424805, 6.506095886230469, 6.9540252685546875, 7.252617835998535, 7.961585521697998, 7.556576251983643, 6.879408836364746, 6.827028751373291, 6.655618667602539, 6.538884162902832, 6.789982795715332, 5.830143928527832, 5.334104537963867, 4.28072452545166, 3.0463058948516846, 3.634981393814087, 4.9653754234313965, 5.946281433105469, 5.495900630950928, 4.643255233764648, 4.310073375701904, 4.720912933349609, 5.410594463348389, 5.863604545593262, 5.8098931312561035, 6.945803165435791, 6.180582046508789, 5.292254447937012, 5.981199264526367, 6.8001203536987305, 6.81065559387207, 6.702491760253906, 6.514092922210693, 6.340603828430176, 6.556746482849121, 6.146914958953857, 6.598004341125488, 6.249215602874756, 6.903313159942627, 6.969472408294678, 6.429836273193359, 5.25454044342041, 4.0914154052734375, 3.2446258068084717, 4.149204730987549, 4.781979084014893, 4.643242359161377, 4.752163887023926, 4.446817398071289, 5.021616458892822, 5.450213432312012, 5.773802280426025, 5.130841255187988, 5.339656829833984, 5.149042129516602, 4.765244960784912, 4.750068664550781, 5.563972473144531, 6.032003402709961, 6.132221698760986, 6.1329193115234375, 6.496120452880859, 5.982044219970703, 5.804381847381592, 5.9130330085754395, 6.078681468963623, 5.761703014373779, 5.398266315460205, 5.203862190246582, 3.6593174934387207, 3.207576274871826, 2.260214328765869, 3.272885799407959, 4.282965660095215, 3.895138740539551, 3.732529640197754, 3.5620150566101074, 3.6913771629333496, 4.332158088684082, 4.630678653717041, 4.371147155761719, 4.4571051597595215, 4.540339946746826, 3.6479239463806152, 3.3433570861816406, 4.564014911651611, 5.106334686279297, 4.522139549255371, 4.662590026855469, 4.559439182281494, 4.69359016418457, 4.00258207321167, 4.704807758331299, 4.838263988494873, 4.6885271072387695, 5.018002986907959, 4.963243007659912, 3.6709542274475098, 2.9711270332336426] +34976 diff --git a/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.json b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.json new file mode 100644 index 0000000..6cd6061 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.7033233642578125, 0.26629638671875, 0.1763153076171875, 0.5288238525390625, 0.517333984375, 0.974090576171875, 0.804443359375, 0.958953857421875, 0.3153076171875, 0.72686767578125, 0.1962432861328125, 0.0962066650390625, 0.4144287109375, 0.7472381591796875, 0.9396820068359375, 0.942840576171875, 0.26605224609375, 0.0536956787109375, 0.1403350830078125, 0.1695709228515625, 0.6800079345703125, 0.7878570556640625, 0.6508331298828125, 0.9293212890625, 0.158477783203125, 0.5907135009765625, 0.8060302734375, 0.0631561279296875, 0.3051605224609375, 0.933441162109375, 0.6856689453125, 0.0918426513671875, 0.32000732421875, 0.0197296142578125, 0.9426727294921875, 0.82879638671875, 0.5542449951171875, 0.4384765625, 0.4301300048828125, 0.97088623046875, 0.28106689453125, 0.0984954833984375, 0.1224822998046875, 0.4524383544921875, 0.754913330078125, 0.5496978759765625, 0.5407867431640625, 0.09063720703125, 0.0094757080078125, 0.943115234375, 0.5699462890625, 0.6541595458984375, 0.3417816162109375, 0.8310546875, 0.8016815185546875, 0.9183807373046875, 0.1242828369140625, 0.61285400390625, 0.0376434326171875, 0.889862060546875, 0.688873291015625, 0.959747314453125, 0.66473388671875, 0.1870574951171875, 0.854339599609375, 0.813018798828125, 0.75140380859375, 0.8780670166015625, 0.9460601806640625, 0.3871307373046875, 0.40570068359375, 0.9284515380859375, 0.6407928466796875, 0.797454833984375, 0.2009124755859375, 0.325958251953125, 0.1270599365234375, 0.4771270751953125, 0.026519775390625, 0.973052978515625, 0.0584869384765625, 0.1966094970703125, 0.2260589599609375, 0.79962158203125, 0.8503265380859375, 0.5875396728515625, 0.7337799072265625, 0.1865081787109375, 0.29345703125, 0.502960205078125, 0.83050537109375, 0.47796630859375, 0.72882080078125, 0.45782470703125, 0.513580322265625, 0.1298828125, 0.0960693359375, 0.1535186767578125, 0.984375, 0.12615966796875, 0.57611083984375, 0.452972412109375, 0.369110107421875, 0.0025177001953125, 0.8507843017578125, 0.4004669189453125, 0.7336273193359375, 0.6441650390625, 0.7120513916015625, 0.454681396484375, 0.551177978515625, 0.41729736328125, 0.7319183349609375, 0.353973388671875, 0.29302978515625, 0.9899139404296875, 0.1537933349609375, 0.0818328857421875, 0.4541168212890625, 0.444305419921875, 0.3088531494140625, 0.158294677734375, 0.021728515625, 0.0823516845703125, 0.712493896484375, 0.2723236083984375, 0.765655517578125, 0.413818359375, 0.588043212890625, 0.011383056640625, 0.1606292724609375, 0.6302947998046875, 0.996429443359375, 0.5706024169921875, 0.0023956298828125, 0.6838226318359375, 0.3037109375, 0.3473968505859375, 0.33013916015625, 0.23748779296875, 0.953521728515625, 0.7642822265625, 0.4068450927734375, 0.3306121826171875, 0.9476470947265625, 0.97271728515625, 0.4091339111328125, 0.000732421875, 0.18853759765625, 0.263763427734375, 0.3372039794921875, 0.0874481201171875, 0.5363311767578125, 0.3593292236328125, 0.1215972900390625, 0.9716796875, 0.168609619140625, 0.779296875, 0.07373046875, 0.1521453857421875, 0.8326416015625, 0.27593994140625, 0.126220703125, 0.275115966796875, 0.873626708984375, 0.394378662109375, 0.8200836181640625, 0.764984130859375, 0.1468505859375, 0.0021209716796875, 0.6187896728515625, 0.4250030517578125, 0.7625885009765625, 0.6275482177734375, 0.319244384765625, 0.83978271484375, 0.66925048828125, 0.35394287109375, 0.68133544921875, 0.055572509765625, 0.507415771484375, 0.524932861328125, 0.8931884765625, 0.9433135986328125, 0.9679107666015625, 0.98907470703125, 0.837615966796875, 0.4365692138671875, 0.4431304931640625, 0.90155029296875, 0.65679931640625, 0.211883544921875, 0.49688720703125, 0.803619384765625, 0.4632415771484375, 0.0737152099609375, 0.407318115234375, 0.0617218017578125, 0.4122467041015625, 0.9615631103515625, 0.5701751708984375, 0.5559844970703125, 0.464447021484375, 0.7527313232421875, 0.81280517578125, 0.2500762939453125, 0.2697906494140625, 0.109283447265625, 0.9666748046875, 0.5233612060546875, 0.726959228515625, 0.549072265625, 0.0431671142578125, 0.833770751953125, 0.111297607421875, 0.2664794921875, 0.1559600830078125, 0.4338836669921875, 0.3806915283203125, 0.4470367431640625, 0.59228515625, 0.7823638916015625, 0.3660430908203125, 0.2286376953125, 0.1009674072265625, 0.91351318359375, 0.6530609130859375, 0.78509521484375, 0.8688812255859375, 0.95208740234375, 0.6192626953125, 0.394989013671875, 0.3208465576171875, 0.631500244140625, 0.1078033447265625, 0.87359619140625, 0.957916259765625, 0.7021942138671875, 0.3585052490234375, 0.0107269287109375, 0.860107421875, 0.7365875244140625, 0.1817779541015625, 0.727783203125, 0.7529296875, 0.67132568359375, 0.2049713134765625, 0.5859832763671875, 0.48583984375, 0.495758056640625, 0.3111572265625, 0.642822265625, 0.24627685546875, 0.5329742431640625, 0.5431671142578125, 0.4384765625, 0.3093414306640625, 0.0697479248046875, 0.8384246826171875, 0.5047607421875, 0.916229248046875, 0.281097412109375, 0.7332000732421875, 0.271453857421875, 0.9972381591796875, 0.97021484375, 0.945404052734375, 0.431060791015625, 0.4622802734375, 0.68780517578125, 0.2575225830078125, 0.6898956298828125, 0.699493408203125, 0.1183013916015625, 0.440704345703125, 0.5462188720703125, 0.73724365234375, 0.184906005859375, 0.1744232177734375, 0.496826171875, 0.4368133544921875, 0.9662628173828125, 0.9229583740234375, 0.8190155029296875, 0.6568756103515625, 0.881439208984375, 0.5411224365234375, 0.0438385009765625, 0.7678680419921875, 0.6744384765625, 0.5377044677734375, 0.2218170166015625, 0.9636077880859375, 0.231536865234375, 0.896392822265625, 0.090118408203125, 0.5261688232421875, 0.9208221435546875, 0.5288238525390625, 0.5113677978515625, 0.9558258056640625, 0.5444488525390625, 0.116455078125, 0.0974884033203125, 0.764404296875, 0.1054840087890625, 0.1686553955078125, 0.9940948486328125, 0.277069091796875, 0.3282623291015625, 0.7286529541015625, 0.2285614013671875, 0.330657958984375, 0.406219482421875, 0.824371337890625, 0.75250244140625, 0.0401458740234375, 0.9577178955078125, 0.6835174560546875, 0.75091552734375, 0.9163970947265625, 0.160308837890625, 0.186126708984375, 0.8255157470703125, 0.965057373046875, 0.6053924560546875, 0.3282623291015625, 0.2110748291015625, 0.7228546142578125, 0.5973663330078125, 0.2786712646484375, 0.110687255859375, 0.774322509765625, 0.2523193359375, 0.79931640625, 0.2955322265625, 0.2703857421875, 0.1299285888671875, 0.3665008544921875, 0.64202880859375, 0.91961669921875, 0.61572265625, 0.8818359375, 0.937255859375, 0.0568695068359375, 0.088897705078125, 0.602630615234375, 0.1436614990234375, 0.6587066650390625, 0.864349365234375, 0.288177490234375, 0.9434356689453125, 0.7006378173828125, 0.03680419921875, 0.59893798828125, 0.7696380615234375, 0.58819580078125, 0.6873931884765625, 0.001556396484375, 0.6203460693359375, 0.7052459716796875, 0.2998046875, 0.656219482421875, 0.1845245361328125, 0.722442626953125, 0.1279449462890625, 0.170654296875, 0.6726226806640625, 0.2529449462890625, 0.9560546875, 0.0117950439453125, 0.7093353271484375, 0.702972412109375, 0.7086029052734375, 0.5959014892578125, 0.6447906494140625, 0.242462158203125, 0.3793792724609375, 0.5128021240234375, 0.2556915283203125, 0.7985992431640625, 0.8645477294921875, 0.4521331787109375, 0.4180450439453125, 0.0735626220703125, 0.722686767578125, 0.652740478515625, 0.9066009521484375, 0.6489105224609375, 0.2777252197265625, 0.7413787841796875, 0.5632781982421875, 0.835723876953125, 0.9299163818359375, 0.7774505615234375, 0.74932861328125, 0.5965728759765625, 0.3720703125, 0.927978515625, 0.547271728515625, 0.5837860107421875, 0.569732666015625, 0.30010986328125, 0.586944580078125, 0.9758148193359375, 0.9540863037109375, 0.869171142578125, 0.2792205810546875, 0.236541748046875, 0.474151611328125, 0.5018768310546875, 0.83074951171875, 0.0397491455078125, 0.8464508056640625, 0.311553955078125, 0.77734375, 0.324005126953125, 0.031219482421875, 0.0449676513671875, 0.8634033203125, 0.34674072265625, 0.971405029296875, 0.11199951171875, 0.5018463134765625, 0.6259613037109375, 0.2811279296875, 0.7934722900390625, 0.2125091552734375, 0.1578216552734375, 0.2220001220703125, 0.1012725830078125, 0.484039306640625, 0.5890655517578125, 0.7344970703125, 0.66717529296875, 0.5605621337890625, 0.51812744140625, 0.9226226806640625, 0.7328338623046875, 0.081787109375, 0.3040313720703125, 0.0954437255859375, 0.751617431640625, 0.7391357421875, 0.27093505859375, 0.7708740234375, 0.992401123046875, 0.0171356201171875, 0.541107177734375, 0.8548126220703125, 0.893402099609375, 0.0311279296875, 0.4600067138671875, 0.2264862060546875, 0.5719146728515625, 0.5205535888671875, 0.6397857666015625, 0.0435028076171875, 0.1783447265625, 0.965240478515625, 0.9311065673828125, 0.19940185546875, 0.1186676025390625, 0.6299591064453125, 0.1716156005859375, 0.14361572265625, 0.334930419921875, 0.1438140869140625, 0.938812255859375, 0.23486328125, 0.644866943359375, 0.147003173828125, 0.8295135498046875, 0.3481903076171875, 0.400299072265625, 0.96282958984375, 0.7692718505859375, 0.8214874267578125, 0.029205322265625, 0.000244140625, 0.1533203125, 0.2371673583984375, 0.4037933349609375, 0.2552947998046875, 0.831146240234375, 0.7019805908203125, 0.522674560546875, 0.19140625, 0.0832061767578125, 0.0335845947265625, 0.2252655029296875, 0.396148681640625, 0.076385498046875, 0.2511749267578125, 0.115875244140625, 0.7989349365234375, 0.6271820068359375, 0.7180633544921875, 0.394683837890625, 0.04083251953125, 0.7338104248046875, 0.4575958251953125, 0.140411376953125, 0.9241943359375, 0.55206298828125, 0.9905242919921875, 0.98822021484375, 0.97607421875, 0.8628082275390625, 0.61273193359375, 0.7752227783203125, 0.22283935546875, 0.1602325439453125, 0.2637176513671875, 0.4688720703125, 0.905914306640625, 0.05853271484375, 0.0350189208984375, 0.5993804931640625, 0.4882354736328125, 0.6438140869140625, 0.131378173828125, 0.125732421875, 0.8190155029296875, 0.835418701171875, 0.182647705078125, 0.800018310546875, 0.428863525390625, 0.2994232177734375, 0.1473236083984375, 0.874176025390625, 0.835357666015625, 0.71697998046875, 0.6917572021484375, 0.47882080078125, 0.7901153564453125, 0.9692230224609375, 0.300445556640625, 0.220428466796875, 0.145172119140625, 0.49761962890625, 0.6727142333984375, 0.6587677001953125, 0.514007568359375, 0.0082550048828125, 0.813720703125, 0.954864501953125, 0.67877197265625, 0.736358642578125, 0.033233642578125, 0.8282318115234375, 0.9443359375, 0.1339874267578125, 0.1359100341796875, 0.9369049072265625, 0.19580078125, 0.0968017578125, 0.147125244140625, 0.6898345947265625, 0.6190032958984375, 0.458465576171875, 0.474578857421875, 0.818634033203125, 0.7333221435546875, 0.9521026611328125, 0.9503173828125, 0.1302337646484375, 0.192779541015625, 0.388946533203125, 0.5878448486328125, 0.5569000244140625, 0.720306396484375, 0.366790771484375, 0.05322265625, 0.4785919189453125, 0.864654541015625, 0.8085479736328125, 0.52899169921875, 0.6944732666015625, 0.331451416015625, 0.54278564453125, 0.4076385498046875, 0.483489990234375, 0.3695068359375, 0.3991851806640625, 0.030059814453125, 0.6908416748046875, 0.1263885498046875, 0.5867767333984375, 0.7735748291015625, 0.854766845703125, 0.9120330810546875, 0.350921630859375, 0.8396148681640625, 0.905120849609375, 0.432037353515625, 0.090240478515625, 0.4743499755859375, 0.306121826171875, 0.855377197265625, 0.2799072265625, 0.17523193359375, 0.6044921875, 0.3317718505859375, 0.4875030517578125, 0.513397216796875, 0.4138336181640625, 0.6309051513671875, 0.4237213134765625, 0.7471923828125, 0.1380767822265625, 0.9238739013671875, 0.13702392578125, 0.457000732421875, 0.418121337890625, 0.481231689453125, 0.182159423828125, 0.89300537109375, 0.86285400390625, 0.0445404052734375, 0.4630584716796875, 0.1640167236328125, 0.35516357421875, 0.90777587890625, 0.523773193359375, 0.92535400390625, 0.926361083984375, 0.8044586181640625, 0.22418212890625, 0.29205322265625, 0.21527099609375, 0.251373291015625, 0.5517425537109375, 0.70745849609375, 0.824310302734375, 0.0299835205078125, 0.6371917724609375, 0.32928466796875, 0.4127044677734375, 0.0935516357421875, 0.863372802734375, 0.7104644775390625, 0.4538116455078125, 0.453369140625, 0.492523193359375, 0.28045654296875, 0.1938934326171875, 0.9508056640625, 0.964996337890625, 0.3267669677734375, 0.38934326171875, 0.4859771728515625, 0.7068634033203125, 0.5029144287109375, 0.1930389404296875, 0.2708740234375, 0.584197998046875, 0.9550628662109375, 0.85894775390625, 0.5214080810546875, 0.6443328857421875, 0.75506591796875, 0.0168609619140625, 0.2784271240234375, 0.52728271484375, 0.2577362060546875, 0.056640625, 0.0514373779296875, 0.5424041748046875, 0.241912841796875, 0.0605621337890625, 0.711273193359375, 0.666351318359375, 0.7425537109375, 0.408172607421875, 0.39324951171875, 0.0298614501953125, 0.98016357421875, 0.639373779296875, 0.0692291259765625, 0.9257965087890625, 0.729278564453125, 0.93389892578125, 0.3023681640625, 0.393951416015625, 0.590179443359375, 0.5436553955078125, 0.3055267333984375, 0.8072357177734375, 0.714752197265625, 0.735015869140625, 0.6289215087890625, 0.9287872314453125, 0.6020050048828125, 0.2900390625, 0.1000823974609375, 0.5297088623046875, 0.21844482421875, 0.4140625, 0.6053009033203125, 0.793060302734375, 0.432342529296875, 0.484222412109375, 0.18377685546875, 0.456787109375, 0.785369873046875, 0.215606689453125, 0.7497711181640625, 0.8236846923828125, 0.0437469482421875, 0.19427490234375, 0.029266357421875, 0.796966552734375, 0.654144287109375, 0.4859466552734375, 0.90423583984375, 0.3500823974609375, 0.6133270263671875, 0.8839263916015625, 0.55072021484375, 0.053009033203125, 0.003326416015625, 0.271270751953125, 0.097747802734375, 0.643707275390625, 0.112640380859375, 0.7596588134765625, 0.0024566650390625, 0.856842041015625, 0.47216796875, 0.150115966796875, 0.1504058837890625, 0.035736083984375, 0.76690673828125, 0.4606781005859375, 0.12469482421875, 0.0432281494140625, 0.252655029296875, 0.4141998291015625, 0.29461669921875, 0.21343994140625, 0.992828369140625, 0.3018798828125, 0.1608734130859375, 0.828338623046875, 0.8767547607421875, 0.0962982177734375, 0.4383697509765625, 0.6376190185546875, 0.24798583984375, 0.0401458740234375, 0.71820068359375, 0.0751190185546875, 0.30877685546875, 0.879241943359375, 0.1747589111328125, 0.1150360107421875, 0.0139923095703125, 0.8804473876953125, 0.3891143798828125, 0.608428955078125, 0.066192626953125, 0.7646484375, 0.5904998779296875, 0.3395233154296875, 0.1163177490234375, 0.4099884033203125, 0.8524017333984375, 0.4969024658203125, 0.1053924560546875, 0.688446044921875, 0.8842315673828125, 0.144378662109375, 0.1854248046875, 0.833038330078125, 0.5269317626953125, 0.8732757568359375, 0.4209747314453125, 0.210906982421875, 0.693023681640625, 0.0673675537109375, 0.3608856201171875, 0.2998809814453125, 0.955902099609375], "dims": [1, 1, 28, 28], "type": "f32"}}, {"memref": {"data": [0.4300994873046875, 0.92138671875, 0.212982177734375, 0.6527099609375, 0.1134490966796875, 0.6237030029296875, 0.0472869873046875, 0.39337158203125, 0.6715087890625, 0.5769500732421875, 0.1522064208984375, 0.5916290283203125, 0.716552734375, 0.352508544921875, 0.917388916015625, 0.514801025390625, 0.9278564453125, 0.236358642578125, 0.256439208984375, 0.9281158447265625, 0.6012725830078125, 0.8368682861328125, 0.126068115234375, 0.4436492919921875, 0.6921539306640625, 0.499237060546875, 0.9122772216796875, 0.9344024658203125, 0.31982421875, 0.1808624267578125, 0.827911376953125, 0.1219024658203125, 0.84906005859375, 0.150390625, 0.522247314453125, 0.524688720703125, 0.7508087158203125, 0.071685791015625, 0.39068603515625, 0.925018310546875, 0.6659088134765625, 0.65435791015625, 0.1243896484375, 0.6502532958984375, 0.9518585205078125, 0.782012939453125, 0.97998046875, 0.7298431396484375, 0.6747283935546875, 0.4537200927734375, 0.2896575927734375, 0.08819580078125, 0.8768157958984375, 0.7824249267578125, 0.8186187744140625, 0.2855987548828125, 0.264862060546875, 0.9268646240234375, 0.0745849609375, 0.35003662109375, 0.5514373779296875, 0.2729034423828125, 0.2178955078125, 0.14385986328125, 0.83990478515625, 0.4988555908203125, 0.5964508056640625, 0.7658843994140625, 0.5654296875, 0.84002685546875, 0.1635589599609375, 0.2506561279296875, 0.3115692138671875, 0.64886474609375, 0.7135467529296875, 0.637725830078125, 0.326385498046875, 0.546600341796875, 0.900787353515625, 0.8073883056640625, 0.7882080078125, 0.2872772216796875, 0.2465057373046875, 0.46624755859375, 0.0929107666015625, 0.6993255615234375, 0.773712158203125, 0.6086883544921875, 0.0553131103515625, 0.9058380126953125, 0.183807373046875, 0.8388824462890625, 0.072174072265625, 0.7134246826171875, 0.78662109375, 0.171722412109375, 0.1326141357421875, 0.9810333251953125, 0.5051116943359375, 0.21832275390625, 0.51953125, 0.8334197998046875, 0.9786376953125, 0.368133544921875, 0.7285003662109375, 0.726654052734375, 0.842437744140625, 0.2300262451171875, 0.9504852294921875, 0.783477783203125, 0.766357421875, 0.8634185791015625, 0.535369873046875, 0.3547515869140625, 0.987762451171875, 0.319427490234375, 0.61199951171875, 0.06683349609375, 0.6225738525390625, 0.060760498046875, 0.415252685546875, 0.1617889404296875, 0.3862457275390625, 0.542083740234375, 0.1268768310546875, 0.27264404296875, 0.70648193359375, 0.878662109375, 0.864227294921875, 0.75274658203125, 0.0063323974609375, 0.811737060546875, 0.055267333984375, 0.775543212890625, 0.6526031494140625, 0.777496337890625, 0.7465362548828125, 0.13201904296875, 0.7133331298828125, 0.2025909423828125, 0.4784393310546875, 0.4518890380859375, 0.955230712890625, 0.00396728515625, 0.8325347900390625, 0.664947509765625, 0.0487518310546875, 0.2639007568359375, 0.5309600830078125, 0.5403900146484375, 0.396331787109375, 0.2635955810546875, 0.5490875244140625, 0.9792022705078125, 0.3227386474609375, 0.678253173828125, 0.3790283203125, 0.3139190673828125, 0.803497314453125, 0.4099884033203125, 0.1757354736328125, 0.965301513671875, 0.1714019775390625, 0.83734130859375, 0.51202392578125, 0.7679595947265625, 0.278106689453125, 0.4006500244140625, 0.32012939453125, 0.75311279296875, 0.1425628662109375, 0.1754150390625, 0.5390167236328125, 0.8971099853515625, 0.9066314697265625, 0.2542877197265625, 0.445953369140625, 0.9975128173828125, 0.9192657470703125, 0.2341766357421875, 0.7914581298828125, 0.4180908203125, 0.574737548828125, 0.3009033203125, 0.321868896484375, 0.25384521484375, 0.38983154296875, 0.2176971435546875, 0.649383544921875, 0.477996826171875, 0.856475830078125, 0.1580047607421875, 0.216766357421875, 0.3267974853515625, 0.80224609375, 0.60260009765625, 0.6979522705078125, 0.60919189453125, 0.8085479736328125, 0.632843017578125], "dims": [8, 1, 5, 5], "type": "f32"}}, {"memref": {"data": [0.610076904296875, 0.6674652099609375, 0.0695953369140625, 0.254425048828125, 0.197021484375, 0.845001220703125, 0.366790771484375, 0.6877899169921875], "dims": [8], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.onnx b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.onnx new file mode 100644 index 0000000..98ac994 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.onnx @@ -0,0 +1,33 @@ + :� +� +in_a +in_b +in_cout_a"Conv* +auto_pad" +SAME_UPPER�* + dilations@@�* +group�* + kernel_shape@@�* +strides@@�ConvMnist12FirstWithBiasZ +in_a + + + + +Z +in_b + + + + +Z +in_c + + +b +out_a + + + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.res b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.res new file mode 100644 index 0000000..450bf28 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Conv/ConvMnist12FirstWithBias.res @@ -0,0 +1,3 @@ +Result: +memref<1x8x28x28xf32>[2.6311607360839844, 3.3430254459381104, 4.631786823272705, 4.930746555328369, 5.535711765289307, 5.874673843383789, 5.577145099639893, 6.427891731262207, 5.403718948364258, 5.5478715896606445, 5.279681205749512, 4.6711859703063965, 5.205379962921143, 6.027859210968018, 5.246108055114746, 4.599042892456055, 4.547948837280273, 3.9503819942474365, 3.8355727195739746, 4.544526100158691, 3.8690168857574463, 4.76411247253418, 4.569873809814453, 5.000434875488281, 5.339838981628418, 4.831448078155518, 3.5385031700134277, 3.019057273864746, 3.441246509552002, 4.682984828948975, 6.090648174285889, 5.743719100952148, 6.62973165512085, 6.539690017700195, 7.319295406341553, 7.84285831451416, 6.636045455932617, 6.8684401512146, 5.959318161010742, 5.821823596954346, 6.01235294342041, 6.090447902679443, 5.64102840423584, 6.083892345428467, 5.818840980529785, 5.002719402313232, 4.8890299797058105, 5.350808620452881, 4.475334167480469, 6.371056079864502, 6.090919017791748, 6.041662693023682, 6.5748138427734375, 7.005311965942383, 4.072498798370361, 3.5875444412231445, 3.9205830097198486, 6.488677024841309, 6.4993672370910645, 6.478546142578125, 7.993937969207764, 7.370501518249512, 8.251598358154297, 7.477355480194092, 7.997640132904053, 7.25333309173584, 7.13811731338501, 5.825077533721924, 6.030859470367432, 6.747177600860596, 7.203975200653076, 7.884586334228516, 6.817869663238525, 5.8476996421813965, 5.659406661987305, 5.466558933258057, 5.555530071258545, 7.9949116706848145, 7.419657230377197, 6.9352216720581055, 7.463243007659912, 7.419369697570801, 4.835063934326172, 4.633623123168945, 4.6104631423950195, 6.747836112976074, 7.535648345947266, 7.58528470993042, 6.817282199859619, 6.967972755432129, 6.929239273071289, 7.397024154663086, 6.935741901397705, 5.618072509765625, 6.675757884979248, 5.479400634765625, 6.008645534515381, 6.2624897956848145, 7.0123209953308105, 6.412092208862305, 6.369975566864014, 6.392807483673096, 6.671160697937012, 5.628209590911865, 5.154322624206543, 7.010004043579102, 7.6164984703063965, 6.281239986419678, 6.442907333374023, 7.593766689300537, 5.799783229827881, 4.6051130294799805, 4.357995986938477, 5.718822479248047, 7.202319145202637, 7.024282455444336, 7.572079181671143, 7.397241115570068, 7.785403728485107, 6.939132213592529, 6.170454502105713, 5.476057052612305, 6.328967094421387, 5.930303573608398, 6.596502304077148, 7.604501247406006, 7.503185749053955, 7.295699119567871, 8.35695743560791, 6.701756477355957, 7.911338806152344, 7.017612457275391, 6.25346040725708, 6.271644115447998, 7.581464767456055, 6.199175834655762, 6.824848651885986, 6.321553707122803, 5.189202785491943, 3.99031925201416, 4.252129077911377, 6.406035423278809, 7.255531311035156, 7.0168681144714355, 6.887294769287109, 8.123588562011719, 7.362351894378662, 6.13560152053833, 6.198885917663574, 5.573391437530518, 5.943446159362793, 5.602583408355713, 5.427643775939941, 7.282691478729248, 6.888337135314941, 8.481573104858398, 7.439100742340088, 6.209026336669922, 7.338791370391846, 7.162642002105713, 5.661781311035156, 6.141326427459717, 7.41368293762207, 7.56175422668457, 6.872800827026367, 6.946585655212402, 5.732100009918213, 4.487945556640625, 4.191673278808594, 5.5929975509643555, 7.850466728210449, 8.234861373901367, 8.546504974365234, 8.139612197875977, 7.367907524108887, 6.785284519195557, 6.404477596282959, 5.211045742034912, 6.368443965911865, 5.7808027267456055, 6.107171535491943, 7.990076541900635, 8.209554672241211, 9.087308883666992, 6.726787090301514, 6.886364459991455, 7.114573001861572, 7.345880508422852, 6.166311740875244, 6.432595252990723, 7.792295932769775, 6.699489593505859, 6.4343695640563965, 6.668586254119873, 5.802335262298584, 3.5851004123687744, 3.973883867263794, 5.959131240844727, 7.583677291870117, 8.222293853759766, 8.379425048828125, 8.296407699584961, 8.447687149047852, 7.59846305847168, 6.3016204833984375, 6.332156658172607, 7.125429153442383, 6.918738842010498, 7.826862812042236, 7.984976768493652, 9.01883316040039, 8.637606620788574, 7.329176425933838, 7.266785144805908, 7.6863837242126465, 6.747315883636475, 6.13110876083374, 7.231351852416992, 6.776409149169922, 6.753607273101807, 6.432608604431152, 7.318637847900391, 5.287641525268555, 3.76548171043396, 3.9675257205963135, 6.102299690246582, 7.81721305847168, 8.632390975952148, 8.778833389282227, 8.057230949401855, 8.47390365600586, 7.896481513977051, 6.819295406341553, 7.269143581390381, 8.165658950805664, 8.239816665649414, 7.971838474273682, 7.73298978805542, 8.612916946411133, 9.003110885620117, 7.900823593139648, 8.104438781738281, 8.279861450195312, 7.80619478225708, 6.772691249847412, 7.303070545196533, 7.201980113983154, 6.455434322357178, 5.713797092437744, 7.053788185119629, 4.961666584014893, 3.417962074279785, 4.569008827209473, 6.138869285583496, 7.216869831085205, 8.386188507080078, 8.891207695007324, 7.434148788452148, 8.05067253112793, 8.302610397338867, 7.943421840667725, 7.006642818450928, 8.660518646240234, 8.504087448120117, 7.773172855377197, 8.633655548095703, 8.45762825012207, 8.181367874145508, 7.182114124298096, 6.635676860809326, 8.715578079223633, 7.268214702606201, 5.814080715179443, 6.15593957901001, 7.447847843170166, 5.918666839599609, 5.4044952392578125, 7.167726993560791, 4.909919738769531, 3.700308322906494, 4.741758823394775, 5.862828731536865, 7.525322914123535, 8.20661735534668, 8.697443962097168, 8.649232864379883, 8.016621589660645, 7.753765106201172, 8.432025909423828, 6.346877098083496, 8.344114303588867, 7.7048749923706055, 8.658890724182129, 8.519388198852539, 8.717486381530762, 7.552515983581543, 7.269393444061279, 8.238138198852539, 8.74506950378418, 7.486395359039307, 6.4813385009765625, 6.8114848136901855, 8.159531593322754, 5.123135089874268, 5.7630157470703125, 6.791690349578857, 5.019486427307129, 4.088171005249023, 4.111262798309326, 5.846959590911865, 6.797608852386475, 7.139647960662842, 7.721425533294678, 8.14094352722168, 7.0407328605651855, 8.559154510498047, 8.201727867126465, 7.4719343185424805, 7.751840591430664, 8.083860397338867, 7.498289585113525, 7.923342704772949, 8.636305809020996, 7.88984489440918, 8.481185913085938, 7.5808424949646, 7.756305694580078, 7.786137580871582, 6.697105407714844, 6.728207588195801, 7.477924823760986, 6.018911838531494, 6.929813385009766, 6.993860721588135, 5.428284168243408, 3.809281349182129, 4.182080268859863, 6.697126388549805, 7.826051235198975, 8.11225414276123, 9.00762939453125, 8.928366661071777, 7.820976257324219, 7.862671375274658, 7.579844951629639, 7.545637607574463, 7.802595615386963, 8.47449779510498, 7.114014625549316, 8.296062469482422, 8.291378021240234, 8.200462341308594, 7.324069499969482, 7.17966365814209, 7.420619487762451, 8.409845352172852, 7.175896167755127, 6.871718883514404, 7.2088823318481445, 6.300915241241455, 6.708899021148682, 6.848306179046631, 5.069638252258301, 3.0293357372283936, 3.8001608848571777, 6.013282775878906, 7.345449924468994, 7.714434623718262, 7.49245023727417, 8.267313003540039, 7.3861918449401855, 7.225959300994873, 7.506460189819336, 6.896586894989014, 7.277829647064209, 7.7606520652771, 7.864385604858398, 7.629758834838867, 8.438743591308594, 8.562932968139648, 7.6819868087768555, 8.021231651306152, 6.928050518035889, 7.3718109130859375, 6.502254009246826, 7.139227390289307, 6.988055229187012, 7.084053993225098, 7.160109043121338, 7.305970191955566, 4.736240863800049, 4.251182556152344, 4.403316020965576, 5.932670593261719, 7.9163055419921875, 7.3449201583862305, 7.512547492980957, 7.686690807342529, 7.356424331665039, 7.589323997497559, 6.284786701202393, 6.886538505554199, 6.533893585205078, 6.775356769561768, 7.6638407707214355, 8.259709358215332, 8.008033752441406, 7.277172088623047, 7.2450270652771, 6.7307233810424805, 6.265782833099365, 7.054542064666748, 6.761800289154053, 7.30526876449585, 6.948430061340332, 6.995458126068115, 7.016299247741699, 7.463305950164795, 5.303423881530762, 4.450277805328369, 4.620128154754639, 5.974031925201416, 7.697789669036865, 6.1733503341674805, 6.720437049865723, 5.768248081207275, 6.993443489074707, 6.200247287750244, 6.209087371826172, 7.189065456390381, 7.364999771118164, 6.714333534240723, 7.178236484527588, 7.37169885635376, 5.773822784423828, 6.040520668029785, 6.612285137176514, 6.232064247131348, 6.801641941070557, 5.607584476470947, 6.563782691955566, 6.856479167938232, 7.373737812042236, 7.7454047203063965, 6.252614498138428, 7.758584499359131, 6.029625415802002, 3.897970676422119, 5.457853317260742, 6.826577186584473, 8.837530136108398, 7.82159948348999, 7.000294208526611, 6.879315376281738, 6.734763145446777, 6.449810028076172, 6.271293640136719, 6.295647144317627, 6.350486755371094, 6.129189491271973, 7.011463165283203, 7.22541618347168, 5.469235420227051, 5.956945419311523, 5.887404441833496, 5.8745808601379395, 6.491998195648193, 5.383756637573242, 7.7498393058776855, 6.786150932312012, 7.644251823425293, 6.2153449058532715, 6.735091209411621, 7.814129829406738, 4.773821830749512, 3.8727922439575195, 5.530975341796875, 6.652721405029297, 8.436795234680176, 7.121441841125488, 7.169788837432861, 6.832265377044678, 6.683294773101807, 6.301302909851074, 5.854963779449463, 5.980642318725586, 5.907224178314209, 5.558612823486328, 6.486872673034668, 6.177196979522705, 6.213660717010498, 6.058664798736572, 6.075592041015625, 7.5590972900390625, 6.466152191162109, 6.143111705780029, 7.708045959472656, 6.539649963378906, 6.063141822814941, 5.995084762573242, 7.400021076202393, 7.233953475952148, 5.060684680938721, 5.1176605224609375, 5.533276557922363, 7.53594970703125, 9.012385368347168, 8.845792770385742, 7.305791854858398, 6.739878177642822, 6.810107231140137, 6.438011169433594, 5.85678243637085, 6.511356353759766, 6.067112445831299, 6.207844257354736, 6.901510715484619, 6.34468936920166, 6.435336112976074, 5.45993185043335, 6.739004611968994, 7.468059062957764, 5.923637390136719, 6.738938331604004, 7.797872543334961, 6.7885589599609375, 5.548443794250488, 6.247118949890137, 6.347837448120117, 6.103238582611084, 5.126598834991455, 4.601779460906982, 5.961408615112305, 7.996079444885254, 9.380962371826172, 9.006380081176758, 8.27160358428955, 7.100441932678223, 6.4415178298950195, 6.5856781005859375, 6.380602836608887, 7.121556282043457, 6.399014472961426, 5.732606410980225, 6.308072090148926, 6.776848793029785, 6.24621057510376, 5.809227466583252, 7.159101963043213, 6.833821773529053, 7.169974327087402, 6.858217239379883, 7.365174770355225, 6.95026969909668, 6.609884262084961, 5.247503757476807, 6.241788864135742, 6.118371963500977, 5.053412437438965, 3.8407082557678223, 5.902685165405273, 7.213100433349609, 9.620089530944824, 10.525508880615234, 8.705089569091797, 7.801384449005127, 6.783623695373535, 7.003985404968262, 7.09576940536499, 7.333199501037598, 6.72371768951416, 6.331264972686768, 7.677521705627441, 6.6903510093688965, 5.85044002532959, 7.18388557434082, 7.503449440002441, 7.251049995422363, 7.572933197021484, 6.645952224731445, 6.581554889678955, 7.5338454246521, 6.092494964599609, 5.486759662628174, 6.490044593811035, 6.093617916107178, 5.067351818084717, 4.129636764526367, 5.110868453979492, 6.875185489654541, 8.97107219696045, 8.812376976013184, 8.06715202331543, 8.160154342651367, 6.780634880065918, 6.956279754638672, 6.656552314758301, 7.65017032623291, 7.3337812423706055, 7.065467357635498, 7.20095682144165, 6.452727317810059, 7.653529644012451, 8.35268783569336, 7.33188533782959, 7.305829048156738, 7.63348913192749, 6.914887428283691, 5.938311576843262, 6.090367317199707, 5.709091663360596, 5.758480548858643, 4.895081043243408, 5.860164642333984, 4.8846917152404785, 3.3834738731384277, 4.654935359954834, 6.836008071899414, 8.14181137084961, 7.67673921585083, 8.260064125061035, 7.970585823059082, 7.535202980041504, 7.831236839294434, 7.287078857421875, 7.814605236053467, 7.843943119049072, 7.702746391296387, 6.599635124206543, 6.31348180770874, 7.070786952972412, 7.912350654602051, 7.757033348083496, 7.612274169921875, 8.413763046264648, 7.19320821762085, 5.844695568084717, 6.0641021728515625, 6.6249237060546875, 5.647169589996338, 4.50867223739624, 6.935644626617432, 4.192988395690918, 3.3850674629211426, 4.489435195922852, 6.698495388031006, 7.33942985534668, 7.954335689544678, 7.763871192932129, 6.450015544891357, 8.62142562866211, 7.881882667541504, 7.275790214538574, 7.326382160186768, 7.258613586425781, 7.165423393249512, 6.908363342285156, 7.166684627532959, 7.500141620635986, 7.951058864593506, 7.754619121551514, 7.482706546783447, 7.461143970489502, 6.763758182525635, 6.669651508331299, 4.800582408905029, 6.234410285949707, 4.716950416564941, 5.514057159423828, 5.892437934875488, 4.374727249145508, 3.863100290298462, 4.1063947677612305, 5.859764099121094, 6.7834649085998535, 7.596680164337158, 5.315008640289307, 5.766353607177734, 7.887062072753906, 6.488536834716797, 7.306788921356201, 6.652050971984863, 7.030677795410156, 7.484314918518066, 6.928769111633301, 6.616873741149902, 7.695194244384766, 8.212930679321289, 7.731635570526123, 7.5353498458862305, 7.87660026550293, 7.491815090179443, 5.328463077545166, 5.035659313201904, 5.055438995361328, 4.271974563598633, 5.457804203033447, 5.651069164276123, 4.707746505737305, 4.2827558517456055, 4.17421817779541, 5.143592834472656, 5.723631858825684, 6.61583948135376, 6.668753147125244, 7.038517951965332, 6.337797164916992, 6.639955043792725, 6.925446510314941, 5.607163429260254, 5.806690216064453, 6.172329902648926, 7.1615891456604, 7.684512138366699, 7.8709635734558105, 8.417802810668945, 8.199563980102539, 7.4991278648376465, 8.057056427001953, 6.706558704376221, 5.426892280578613, 5.768462181091309, 5.18535852432251, 4.074305534362793, 5.7216620445251465, 5.064176559448242, 4.545502662658691, 3.3882217407226562, 3.930703639984131, 4.065121650695801, 4.568277359008789, 4.762842178344727, 5.52395486831665, 4.858176231384277, 5.0927653312683105, 5.49963903427124, 4.439447402954102, 5.147854328155518, 5.004759311676025, 5.480944633483887, 5.7794413566589355, 5.83812141418457, 5.788302421569824, 6.0659565925598145, 6.4144086837768555, 6.836256504058838, 6.125874042510986, 5.646083354949951, 5.169302940368652, 5.82409143447876, 4.053252220153809, 3.8929824829101562, 4.609059810638428, 4.48783540725708, 3.8010201454162598, 2.7039759159088135, 2.751919746398926, 2.92903470993042, 3.7138495445251465, 3.572843551635742, 4.042613506317139, 3.5594093799591064, 3.7066755294799805, 3.6847352981567383, 3.464672803878784, 3.7588553428649902, 2.848975658416748, 3.5606331825256348, 4.161019325256348, 4.349103927612305, 4.24919319152832, 4.8666534423828125, 4.954404830932617, 4.0235090255737305, 4.853189468383789, 4.728331565856934, 3.469385862350464, 3.535707473754883, 2.6205713748931885, 3.023146152496338, 2.8095009326934814, 4.416110992431641, 2.454400062561035, 2.579195022583008, 2.8039050102233887, 3.6199758052825928, 4.836062431335449, 5.4550604820251465, 6.138838768005371, 6.884217739105225, 6.282234191894531, 6.641496658325195, 6.447368144989014, 6.280364513397217, 6.456966876983643, 5.8539204597473145, 5.7547149658203125, 6.2662458419799805, 5.739888668060303, 5.374515533447266, 5.706007957458496, 5.098513126373291, 4.257147312164307, 4.803297996520996, 4.306617736816406, 4.801563739776611, 4.886524677276611, 5.578043460845947, 6.1002373695373535, 5.324907302856445, 3.687814235687256, 3.7382209300994873, 4.217338562011719, 4.801764011383057, 6.781715393066406, 6.745173931121826, 6.851932525634766, 7.392772674560547, 7.37917423248291, 8.895173072814941, 7.7626237869262695, 8.082039833068848, 6.89532995223999, 5.867522716522217, 5.902983665466309, 6.688348293304443, 6.723505020141602, 6.83427095413208, 6.494906425476074, 5.596153259277344, 5.1437811851501465, 5.677134990692139, 5.301726341247559, 6.3112335205078125, 6.8667073249816895, 7.262665748596191, 7.1310811042785645, 7.647509574890137, 5.18602991104126, 3.9907777309417725, 4.574692726135254, 6.572518825531006, 7.644845962524414, 7.351879596710205, 8.588805198669434, 7.802732467651367, 9.008830070495605, 9.226227760314941, 8.587933540344238, 7.922037124633789, 7.094163417816162, 6.357039451599121, 6.713720798492432, 8.24974250793457, 8.21252727508545, 8.552169799804688, 7.873421669006348, 6.036336898803711, 6.524655342102051, 6.551726341247559, 6.542412281036377, 8.896384239196777, 8.36021614074707, 8.149127960205078, 7.839809894561768, 8.506263732910156, 5.8595404624938965, 5.136321067810059, 4.558103084564209, 7.772134304046631, 8.37684440612793, 8.322460174560547, 7.8194427490234375, 8.090909957885742, 8.143742561340332, 7.95322322845459, 7.4885125160217285, 6.237433433532715, 7.078622817993164, 6.94087553024292, 7.332424640655518, 6.816915512084961, 6.930088520050049, 7.43959379196167, 7.253006935119629, 7.665907859802246, 7.659470081329346, 7.002985954284668, 4.999455451965332, 7.798628807067871, 7.775553226470947, 7.674344539642334, 6.894979000091553, 8.840263366699219, 6.750589847564697, 6.3707194328308105, 4.033991813659668, 5.995893955230713, 8.016712188720703, 7.962581157684326, 8.970067024230957, 8.466379165649414, 8.631290435791016, 7.6209869384765625, 7.639750003814697, 6.793434143066406, 7.671078205108643, 6.897522449493408, 7.338480472564697, 7.783770561218262, 8.916060447692871, 8.479923248291016, 9.78659439086914, 8.723673820495605, 9.17270565032959, 7.539676189422607, 6.531338691711426, 7.219576358795166, 8.696060180664062, 7.443252086639404, 7.597200870513916, 7.525116920471191, 6.05850887298584, 4.99473762512207, 4.488248348236084, 6.508813858032227, 8.428276062011719, 8.568048477172852, 7.584311008453369, 8.412089347839355, 8.863725662231445, 7.807980060577393, 7.5189361572265625, 6.482588768005371, 6.388207912445068, 5.884636878967285, 6.418222427368164, 7.506624221801758, 9.174489974975586, 8.47900104522705, 8.995292663574219, 7.057872295379639, 7.900440692901611, 7.309939384460449, 6.527331352233887, 7.143209934234619, 8.177389144897461, 8.632110595703125, 7.811131477355957, 8.032953262329102, 6.421778202056885, 5.1790361404418945, 4.707910537719727, 6.703054904937744, 8.646784782409668, 9.364694595336914, 9.365324974060059, 9.481590270996094, 9.17258358001709, 7.582167625427246, 6.874727249145508, 5.8677754402160645, 6.768345832824707, 6.792912006378174, 7.65409517288208, 8.717591285705566, 8.610381126403809, 9.492136001586914, 7.929814338684082, 7.852745532989502, 7.418910026550293, 8.34296703338623, 7.952663898468018, 7.459842681884766, 8.08969497680664, 7.9168195724487305, 7.437953472137451, 6.778069019317627, 6.65639066696167, 5.16544771194458, 4.773269176483154, 6.684311866760254, 8.431455612182617, 8.350492477416992, 9.314370155334473, 9.531498908996582, 9.214485168457031, 8.32368278503418, 7.317592144012451, 7.217255115509033, 8.744671821594238, 7.542664051055908, 8.481807708740234, 8.814248085021973, 9.703306198120117, 10.302725791931152, 8.607479095458984, 8.100053787231445, 8.839553833007812, 8.061670303344727, 7.1153564453125, 7.7000250816345215, 7.679327011108398, 7.475839614868164, 7.469410419464111, 7.698957443237305, 6.726721286773682, 5.105234622955322, 4.739675521850586, 5.992732048034668, 8.600702285766602, 9.660935401916504, 9.917680740356445, 9.797429084777832, 9.153349876403809, 9.042840957641602, 8.399407386779785, 8.080058097839355, 9.653766632080078, 8.269166946411133, 8.989561080932617, 8.443082809448242, 10.223899841308594, 10.37176513671875, 8.644943237304688, 9.410792350769043, 9.789895057678223, 9.091835975646973, 7.212690830230713, 8.491718292236328, 8.390005111694336, 6.963528156280518, 6.160040378570557, 7.766574382781982, 6.388247489929199, 4.258810043334961, 4.750340461730957, 6.431783199310303, 7.640225410461426, 9.450840950012207, 9.828699111938477, 8.772724151611328, 8.813933372497559, 9.498831748962402, 8.934091567993164, 8.31471061706543, 9.074169158935547, 9.670795440673828, 9.078161239624023, 9.227432250976562, 9.5081148147583, 9.29109001159668, 8.492053031921387, 8.051602363586426, 9.138937950134277, 8.133289337158203, 6.354268550872803, 7.474968433380127, 7.929165363311768, 6.787800312042236, 5.843662261962891, 8.386419296264648, 6.528853416442871, 4.363966464996338, 4.400372505187988, 6.084566593170166, 7.88569450378418, 9.35103702545166, 10.270700454711914, 9.643254280090332, 9.776777267456055, 8.912214279174805, 9.252523422241211, 7.154407978057861, 8.926166534423828, 8.432577133178711, 9.415287971496582, 9.615266799926758, 10.319361686706543, 9.006290435791016, 8.266829490661621, 8.795187950134277, 9.26340389251709, 8.95981216430664, 7.783725738525391, 7.7225141525268555, 8.810527801513672, 6.522682189941406, 6.4389190673828125, 8.01950454711914, 6.016176223754883, 4.388931751251221, 4.14462423324585, 6.075241565704346, 7.53587532043457, 8.310894012451172, 8.783357620239258, 8.992338180541992, 8.112602233886719, 8.668911933898926, 9.924473762512207, 8.312498092651367, 9.09041976928711, 8.545578002929688, 8.887589454650879, 8.809436798095703, 10.651450157165527, 8.135967254638672, 8.685893058776855, 9.267629623413086, 9.164674758911133, 8.58958625793457, 7.5494561195373535, 7.331055164337158, 8.886783599853516, 7.402706146240234, 7.859946250915527, 7.7999267578125, 5.80118465423584, 5.095604419708252, 4.55153751373291, 7.505088806152344, 9.645225524902344, 9.2237548828125, 9.736931800842285, 9.786394119262695, 9.110638618469238, 8.86479377746582, 8.876119613647461, 8.983747482299805, 8.269468307495117, 9.07375717163086, 9.051085472106934, 9.1592378616333, 9.945759773254395, 8.521368026733398, 8.168045997619629, 8.762908935546875, 8.534568786621094, 8.561653137207031, 8.460302352905273, 8.270401954650879, 8.537811279296875, 6.704886436462402, 7.469627380371094, 7.175554275512695, 5.701740264892578, 4.462123394012451, 4.271259784698486, 6.508848190307617, 8.275131225585938, 8.021612167358398, 8.33391284942627, 8.826045036315918, 8.982744216918945, 8.675719261169434, 7.715374946594238, 7.475106239318848, 8.078916549682617, 8.471780776977539, 9.362692832946777, 8.86595630645752, 8.643957138061523, 9.746773719787598, 9.19052505493164, 9.085526466369629, 8.20000171661377, 7.857147693634033, 7.586874485015869, 8.037446975708008, 7.559758186340332, 7.4077959060668945, 8.083630561828613, 8.48477554321289, 6.659563064575195, 4.77187442779541, 5.050530433654785, 6.202845573425293, 8.609222412109375, 8.446887969970703, 8.15299129486084, 9.121529579162598, 7.673314571380615, 8.862388610839844, 7.166440486907959, 7.039571762084961, 7.675874710083008, 8.022802352905273, 8.514410972595215, 9.158860206604004, 8.565650939941406, 8.467164993286133, 8.536136627197266, 7.233160018920898, 6.517029285430908, 7.939945697784424, 7.780395030975342, 8.414067268371582, 7.383642196655273, 7.64885139465332, 8.696775436401367, 8.400627136230469, 6.535658359527588, 5.030952453613281, 5.780251502990723, 6.304169654846191, 8.135772705078125, 7.243285655975342, 6.859273433685303, 6.8829345703125, 7.240246772766113, 7.162023067474365, 7.534870624542236, 8.496536254882812, 8.744852066040039, 7.435170650482178, 6.993386268615723, 7.5360026359558105, 7.176936149597168, 6.612598419189453, 7.1624860763549805, 6.747848987579346, 7.031219482421875, 7.719534397125244, 6.928616046905518, 8.457677841186523, 7.478845596313477, 8.827092170715332, 7.986464500427246, 7.98773193359375, 6.560976505279541, 5.707529067993164, 5.761834144592285, 7.672696113586426, 9.71069049835205, 10.002128601074219, 8.569599151611328, 7.688705921173096, 8.36933708190918, 7.3180694580078125, 7.059383869171143, 7.152995586395264, 7.012215614318848, 6.413839340209961, 7.214145660400391, 8.535808563232422, 7.094272136688232, 6.495839595794678, 6.570231914520264, 6.719473838806152, 7.442951202392578, 7.147492408752441, 7.878561973571777, 7.673679828643799, 8.25495719909668, 7.878488063812256, 7.016655445098877, 8.02091121673584, 6.427530765533447, 4.949962615966797, 5.640756607055664, 7.553725242614746, 9.980816841125488, 8.686412811279297, 8.658242225646973, 7.210674285888672, 7.443182468414307, 6.5551300048828125, 6.625345706939697, 6.734378814697266, 6.637092590332031, 6.191798210144043, 7.371645927429199, 7.952708721160889, 7.278387546539307, 7.391105651855469, 6.918717384338379, 8.276732444763184, 8.387823104858398, 6.386189937591553, 8.165302276611328, 6.922292232513428, 7.731017589569092, 6.740785598754883, 7.698705673217773, 7.885948181152344, 6.841104507446289, 5.5569000244140625, 5.7617082595825195, 8.120840072631836, 10.54482364654541, 9.763394355773926, 8.533825874328613, 7.573212623596191, 7.610023498535156, 7.048081874847412, 7.235923767089844, 7.234964847564697, 6.818500518798828, 7.0614118576049805, 8.616449356079102, 7.375166893005371, 6.345158576965332, 6.644331932067871, 7.326376438140869, 8.795755386352539, 7.075239658355713, 6.394350528717041, 8.55174446105957, 8.367124557495117, 6.680042266845703, 6.121924877166748, 7.690346717834473, 7.190682888031006, 5.2396368980407715, 5.499462604522705, 6.03554105758667, 8.938300132751465, 10.721600532531738, 10.043664932250977, 9.057207107543945, 8.22945785522461, 8.25893783569336, 7.578121185302734, 7.2492995262146, 7.484185218811035, 7.032467842102051, 7.116621017456055, 7.08459997177124, 6.971200466156006, 6.6393232345581055, 6.5416364669799805, 8.022236824035645, 8.11567211151123, 7.098252773284912, 7.382408142089844, 9.0628023147583, 8.134320259094238, 7.328287601470947, 6.054839611053467, 7.449800491333008, 6.880661487579346, 5.102777481079102, 5.071034908294678, 6.133828163146973, 8.461832046508789, 10.588379859924316, 11.312739372253418, 10.155072212219238, 8.536991119384766, 8.341957092285156, 7.746145248413086, 7.721093654632568, 8.231422424316406, 8.035713195800781, 8.042766571044922, 7.920065879821777, 7.550018310546875, 6.411744594573975, 7.341856956481934, 8.898560523986816, 8.080728530883789, 8.232276916503906, 7.986701488494873, 8.050992965698242, 7.609279632568359, 7.428621292114258, 6.145195484161377, 7.556260108947754, 6.772802829742432, 5.906890392303467, 5.563047409057617, 5.72970724105835, 6.9858245849609375, 9.066373825073242, 9.858541488647461, 10.0699462890625, 9.388395309448242, 7.702634334564209, 7.764796257019043, 7.9269561767578125, 8.654879570007324, 7.93633508682251, 7.648862838745117, 7.917596817016602, 7.939958572387695, 8.54721450805664, 9.435218811035156, 9.218034744262695, 7.917067050933838, 8.373889923095703, 7.994942665100098, 6.936655521392822, 6.106254577636719, 6.829280853271484, 6.163638114929199, 6.085565090179443, 5.656646728515625, 5.8417277336120605, 4.347358226776123, 5.217485427856445, 6.872970104217529, 9.29887580871582, 9.37830638885498, 8.72224235534668, 9.636377334594727, 8.578638076782227, 8.453847885131836, 8.129541397094727, 8.775397300720215, 8.498960494995117, 9.178983688354492, 8.181817054748535, 7.099088191986084, 7.729671955108643, 8.824443817138672, 9.003609657287598, 8.193170547485352, 9.343527793884277, 8.907785415649414, 6.903712749481201, 7.138429164886475, 7.080812454223633, 7.036036491394043, 4.830443859100342, 6.763228893280029, 5.701196193695068, 4.322299003601074, 4.72605562210083, 7.313492774963379, 8.800850868225098, 8.40170669555664, 8.680744171142578, 7.738838195800781, 9.17801570892334, 9.506707191467285, 7.843692302703857, 8.177108764648438, 7.72667932510376, 8.425025939941406, 7.9475860595703125, 7.5353546142578125, 8.412107467651367, 9.086891174316406, 8.54294490814209, 8.336590766906738, 9.432520866394043, 8.011336326599121, 7.0894622802734375, 5.499326229095459, 6.607534885406494, 5.657281398773193, 5.675890922546387, 6.714597702026367, 5.8113813400268555, 4.304603576660156, 4.409146308898926, 6.269078731536865, 7.634102821350098, 7.8117265701293945, 6.755198955535889, 6.103255748748779, 8.393577575683594, 8.012187004089355, 7.209066867828369, 7.354490280151367, 7.933864116668701, 8.62637710571289, 7.676283836364746, 7.400322437286377, 8.5112943649292, 8.918448448181152, 8.703519821166992, 9.060043334960938, 8.873488426208496, 7.768837928771973, 6.245302677154541, 5.718580722808838, 6.19105339050293, 4.787986755371094, 5.908567428588867, 6.8048224449157715, 5.380135536193848, 4.943310260772705, 3.8661093711853027, 5.3306355476379395, 6.477163314819336, 8.046741485595703, 7.577403545379639, 7.477339267730713, 7.53140115737915, 7.0253801345825195, 7.655825138092041, 6.576560020446777, 7.0986409187316895, 7.194221019744873, 7.751133918762207, 8.229707717895508, 9.243621826171875, 9.37952995300293, 9.183343887329102, 8.317651748657227, 8.492661476135254, 7.7315850257873535, 7.179031848907471, 6.803647041320801, 6.2749199867248535, 4.368078231811523, 6.114109039306641, 5.926347732543945, 4.573789596557617, 4.959450721740723, 3.838897228240967, 4.698293685913086, 5.510833263397217, 5.203763008117676, 5.336349010467529, 5.503374099731445, 5.530492782592773, 5.649771213531494, 5.618322849273682, 5.642380714416504, 6.043459892272949, 5.2866644859313965, 5.995370864868164, 6.028483867645264, 6.531257629394531, 6.6673078536987305, 6.435759544372559, 7.2676239013671875, 7.359909534454346, 6.5262017250061035, 5.749179363250732, 6.237253665924072, 4.976351737976074, 3.2280707359313965, 5.362051010131836, 4.6331281661987305, 4.246158599853516, 3.2979345321655273, 3.339414596557617, 3.3808069229125977, 3.836153984069824, 3.7229321002960205, 3.8536455631256104, 4.539458751678467, 3.7262773513793945, 4.054999351501465, 4.259085655212402, 3.96243953704834, 3.1151976585388184, 3.049081802368164, 4.2686967849731445, 5.496422290802002, 4.3477373123168945, 4.946495532989502, 5.451599597930908, 5.014185428619385, 4.975132465362549, 5.138517379760742, 3.698498249053955, 3.816413640975952, 2.960033655166626, 3.0157930850982666, 3.4113609790802, 4.183046340942383, 3.376101493835449, 2.4132471084594727, 2.20997953414917, 3.0323374271392822, 3.8886001110076904, 3.9335665702819824, 4.225500106811523, 4.298859119415283, 4.3176984786987305, 5.09602689743042, 4.596821308135986, 4.702648162841797, 4.321475505828857, 4.177701473236084, 3.537050247192383, 3.9294795989990234, 3.6864869594573975, 3.823319435119629, 3.8623952865600586, 3.239210367202759, 2.704383134841919, 3.103039026260376, 2.8272016048431396, 3.9848270416259766, 3.55069899559021, 4.171995162963867, 4.113540172576904, 4.266777515411377, 2.9504942893981934, 2.5631377696990967, 3.222822904586792, 3.4811110496520996, 3.9629323482513428, 4.939390659332275, 5.716595649719238, 5.893711566925049, 5.8864898681640625, 6.047857284545898, 5.594264507293701, 5.947617530822754, 4.905667304992676, 4.207038402557373, 4.73166561126709, 5.460741996765137, 5.2586469650268555, 5.3876237869262695, 4.572237014770508, 3.649148941040039, 3.417384147644043, 4.11483907699585, 3.804251194000244, 5.002007007598877, 4.330232620239258, 5.546116828918457, 4.465970039367676, 5.079792022705078, 3.1898152828216553, 2.575364828109741, 4.044981002807617, 5.604506492614746, 6.068411827087402, 5.89954948425293, 6.40507173538208, 6.5292158126831055, 7.437178134918213, 7.368749618530273, 6.278524398803711, 5.461233139038086, 5.276096343994141, 5.34929895401001, 6.089664459228516, 6.542933464050293, 6.500506401062012, 5.686516284942627, 4.908015251159668, 4.472775459289551, 5.430099010467529, 5.680624008178711, 5.192699909210205, 7.244452476501465, 6.262609958648682, 6.443747043609619, 5.850585460662842, 6.717817783355713, 3.981433629989624, 3.101144313812256, 4.779175758361816, 5.746091365814209, 5.632584571838379, 6.078341007232666, 6.472504615783691, 5.951320171356201, 6.27906608581543, 5.27911901473999, 5.569696426391602, 5.0355119705200195, 5.477900505065918, 4.9471259117126465, 5.35385799407959, 5.010556697845459, 5.891470432281494, 6.104894161224365, 5.93793249130249, 4.716923236846924, 5.330803871154785, 5.262304782867432, 4.939377307891846, 6.303359508514404, 5.683777332305908, 6.362562656402588, 5.894002914428711, 6.887075424194336, 4.437664031982422, 3.596022129058838, 4.227088928222656, 5.8201775550842285, 6.747049331665039, 7.130561351776123, 6.875659942626953, 6.743107795715332, 6.518332004547119, 5.557862758636475, 5.980578899383545, 4.968534469604492, 6.004558563232422, 5.043435573577881, 5.525190353393555, 5.979811668395996, 7.42518424987793, 7.035632610321045, 6.626101493835449, 6.010544300079346, 5.732863426208496, 5.027690887451172, 4.871511459350586, 5.733912467956543, 5.927621841430664, 5.710660457611084, 5.376978874206543, 5.95369815826416, 4.368437767028809, 3.385922908782959, 4.436941146850586, 4.910880088806152, 6.436500072479248, 6.637243747711182, 6.234914302825928, 6.277961730957031, 7.043115139007568, 6.153522968292236, 5.728947639465332, 3.9779770374298096, 4.634770393371582, 3.9701077938079834, 5.736999034881592, 6.213447570800781, 6.967708587646484, 6.923935890197754, 6.903756141662598, 5.520625114440918, 5.9253926277160645, 5.961003303527832, 6.191582202911377, 5.9364519119262695, 6.77664852142334, 6.597611427307129, 6.261350631713867, 5.639944076538086, 4.185358047485352, 2.655141592025757, 4.646768569946289, 5.7026143074035645, 6.753203392028809, 6.799753665924072, 6.646407604217529, 7.235934734344482, 6.576905727386475, 5.2904558181762695, 4.714635848999023, 3.997929096221924, 5.64835262298584, 5.169257164001465, 6.654040813446045, 6.132706165313721, 6.598336219787598, 7.209543228149414, 5.547952651977539, 5.792305946350098, 6.01469087600708, 6.617776870727539, 5.678244590759277, 5.075140953063965, 5.490469932556152, 6.186868667602539, 5.742565155029297, 5.2194976806640625, 4.328986167907715, 3.1751656532287598, 4.586031913757324, 5.321846008300781, 6.785091876983643, 7.24252986907959, 7.838925361633301, 7.547571182250977, 6.557703018188477, 5.924438953399658, 5.428474426269531, 5.026657581329346, 6.706020355224609, 6.168427467346191, 6.941930770874023, 6.659689426422119, 6.942317485809326, 7.7967329025268555, 6.000957489013672, 6.482009410858154, 6.3264641761779785, 6.45848274230957, 5.24404239654541, 5.603309631347656, 6.2234883308410645, 6.0447516441345215, 5.732338905334473, 6.137802600860596, 4.800911903381348, 3.082566261291504, 4.302828788757324, 5.253230571746826, 6.6536455154418945, 7.499627590179443, 7.265152931213379, 6.595259189605713, 7.078558921813965, 7.262125015258789, 6.912600994110107, 5.746569633483887, 7.020028114318848, 6.171707630157471, 7.930663108825684, 7.4031195640563965, 8.604085922241211, 8.576601028442383, 6.8566131591796875, 7.273601055145264, 7.049995422363281, 6.833298206329346, 5.588141918182373, 5.890137672424316, 5.937267303466797, 5.650576114654541, 5.2280378341674805, 5.996639728546143, 3.786052942276001, 2.384577512741089, 4.264825820922852, 6.114128589630127, 6.989759922027588, 7.6521806716918945, 7.813623428344727, 7.409654140472412, 7.243229866027832, 6.578176021575928, 6.681733131408691, 5.796816825866699, 7.5508599281311035, 6.992221355438232, 7.811605930328369, 6.537077903747559, 7.333411693572998, 6.820071220397949, 6.2197394371032715, 6.302616596221924, 6.075345516204834, 6.362452507019043, 5.472242832183838, 5.6255340576171875, 5.897002220153809, 5.110562801361084, 5.1378350257873535, 5.935816287994385, 3.7490944862365723, 2.8548805713653564, 4.314982891082764, 5.7616424560546875, 6.8715596199035645, 7.738203048706055, 7.8666768074035645, 6.9538960456848145, 6.8601908683776855, 6.523075103759766, 6.5648603439331055, 5.845815658569336, 7.823085308074951, 7.560380458831787, 7.66676664352417, 6.575549125671387, 7.791654586791992, 6.899160385131836, 6.713510036468506, 6.668870449066162, 7.161128997802734, 7.269833087921143, 5.759352207183838, 5.227278709411621, 6.496395587921143, 5.08660888671875, 5.342623710632324, 5.6803107261657715, 3.9488985538482666, 2.7845566272735596, 3.685093879699707, 4.972278118133545, 5.9483323097229, 6.342891693115234, 7.172420501708984, 7.301621437072754, 7.180597305297852, 6.705353260040283, 7.360157012939453, 6.052093029022217, 6.838866233825684, 6.3730340003967285, 7.679075241088867, 7.1118950843811035, 8.083015441894531, 6.609774589538574, 6.505507469177246, 6.921506404876709, 6.837199687957764, 6.578062534332275, 5.97622537612915, 5.915987491607666, 6.884196758270264, 5.126471519470215, 5.951120853424072, 5.143529891967773, 3.9401557445526123, 3.0810630321502686, 5.073485374450684, 6.28278112411499, 7.056667327880859, 6.870894432067871, 7.053636074066162, 7.306212425231934, 6.509818077087402, 7.070564270019531, 6.850658893585205, 6.751134395599365, 7.028543949127197, 7.114673137664795, 7.459139823913574, 6.049408435821533, 6.493442058563232, 6.318357467651367, 7.19587516784668, 7.428750991821289, 6.529916286468506, 6.518563270568848, 5.920123100280762, 6.174189567565918, 6.371451377868652, 5.104136943817139, 5.588351249694824, 5.494091987609863, 4.927852153778076, 3.2265007495880127, 4.5108208656311035, 5.497775554656982, 6.467226028442383, 6.238492965698242, 6.914647102355957, 7.411454200744629, 6.67464017868042, 6.968769073486328, 5.7041425704956055, 6.380300998687744, 6.809521675109863, 7.015969753265381, 7.234659671783447, 7.111301422119141, 7.30445671081543, 7.812405586242676, 7.013172149658203, 5.788994789123535, 5.474930763244629, 6.520452499389648, 5.866128444671631, 6.570324897766113, 5.4523444175720215, 5.779742240905762, 6.696227073669434, 5.771988391876221, 4.087982654571533, 2.464810371398926, 4.685746192932129, 5.189276218414307, 6.343160152435303, 6.630699634552002, 6.8876752853393555, 7.3780927658081055, 6.225375652313232, 5.479813575744629, 4.679872989654541, 5.347822666168213, 6.313535213470459, 6.662773132324219, 6.4670610427856445, 6.79351282119751, 6.83695650100708, 6.584831237792969, 6.407831192016602, 6.182414531707764, 5.94308614730835, 6.280611991882324, 5.180232524871826, 6.178471088409424, 5.71200704574585, 6.664498329162598, 6.525083065032959, 6.41851806640625, 4.666446685791016, 2.8383612632751465, 4.810116767883301, 5.053718090057373, 6.040492057800293, 5.878509998321533, 5.445520401000977, 5.274587631225586, 6.103522300720215, 6.339745998382568, 6.017378330230713, 6.179821968078613, 5.744348049163818, 5.487918853759766, 5.663793563842773, 6.125751972198486, 5.682251453399658, 5.569873809814453, 5.456501007080078, 5.048145771026611, 5.234618186950684, 5.911739349365234, 5.920377731323242, 6.385715007781982, 6.1924896240234375, 6.459244728088379, 6.243045806884766, 6.076784610748291, 4.508815765380859, 3.7779159545898438, 6.188748359680176, 6.7346014976501465, 6.904366493225098, 6.15582275390625, 6.324151992797852, 5.199201583862305, 6.271987438201904, 5.032527446746826, 5.388562202453613, 6.013667106628418, 5.854339599609375, 5.134250640869141, 5.625609397888184, 6.209914684295654, 5.146939277648926, 4.461503982543945, 4.299012660980225, 5.610424995422363, 6.062840938568115, 5.572092533111572, 5.955050468444824, 5.851528644561768, 6.307839393615723, 5.341307163238525, 4.81386661529541, 6.438285827636719, 5.03141975402832, 3.3729212284088135, 5.240628242492676, 6.593181610107422, 7.958760738372803, 6.9825544357299805, 6.558568954467773, 5.051893711090088, 5.625189304351807, 4.683290004730225, 5.005841255187988, 4.868447780609131, 4.65570068359375, 5.523432731628418, 6.348457336425781, 6.030120849609375, 5.308505058288574, 5.425699710845947, 5.390064716339111, 6.146957874298096, 5.526811122894287, 4.326783180236816, 6.483152389526367, 5.700546741485596, 6.281040191650391, 4.890683650970459, 6.258109092712402, 6.537023544311523, 4.613053321838379, 3.6098673343658447, 6.198934078216553, 7.0963521003723145, 7.661322593688965, 6.816391944885254, 6.559369087219238, 5.102952003479004, 5.593458652496338, 4.898807048797607, 5.646783351898193, 6.222951889038086, 5.890878200531006, 5.425449848175049, 5.327091693878174, 5.645942687988281, 5.759031772613525, 5.204063892364502, 5.269853591918945, 5.867800712585449, 5.770916938781738, 5.324200630187988, 6.823129653930664, 5.5671491622924805, 5.6384968757629395, 3.9374938011169434, 5.992122650146484, 5.620272636413574, 3.875187873840332, 3.752678394317627, 5.601982116699219, 6.748680591583252, 7.594732284545898, 7.503718376159668, 7.195465564727783, 6.237835884094238, 6.1442179679870605, 5.516869068145752, 5.536067962646484, 5.737909317016602, 5.039434909820557, 5.139283180236816, 4.903636932373047, 4.8645758628845215, 5.251317501068115, 5.260243892669678, 6.270379543304443, 6.423562049865723, 5.829901695251465, 6.24502420425415, 7.01705265045166, 5.6246819496154785, 5.308505058288574, 4.428561687469482, 5.688594341278076, 4.780093669891357, 3.895834445953369, 3.330350875854492, 6.733841896057129, 7.772041320800781, 8.450257301330566, 8.58206844329834, 7.892153739929199, 6.869359016418457, 6.151095390319824, 5.692617416381836, 5.663285255432129, 6.806889057159424, 5.756531715393066, 5.283009052276611, 4.825039386749268, 5.6986775398254395, 6.09805965423584, 5.713788986206055, 6.64741849899292, 5.7244133949279785, 6.629388809204102, 6.609119415283203, 6.008678436279297, 5.482527256011963, 5.897684574127197, 4.848720550537109, 5.612445831298828, 5.332371234893799, 4.426755905151367, 3.1700761318206787, 5.178473949432373, 6.19052267074585, 7.935290336608887, 7.703124046325684, 6.91129207611084, 6.119040012359619, 5.378596305847168, 6.360647678375244, 6.588725566864014, 7.212313652038574, 5.889060974121094, 6.471722602844238, 6.562479019165039, 6.387165069580078, 6.273069858551025, 6.475790500640869, 6.851164817810059, 6.097131729125977, 6.773311614990234, 5.488768577575684, 4.983069896697998, 4.861901760101318, 4.965787887573242, 4.405281066894531, 4.845196723937988, 5.265748500823975, 4.420230388641357, 2.7441656589508057, 4.986042022705078, 5.7889556884765625, 7.206777095794678, 7.868813514709473, 7.339110374450684, 6.579513072967529, 6.184321880340576, 6.654205322265625, 6.471129417419434, 6.942075729370117, 5.77722692489624, 6.389019012451172, 5.938594341278076, 5.933689594268799, 7.081427574157715, 7.3813910484313965, 7.052324295043945, 6.075262069702148, 6.7297043800354, 6.100996971130371, 5.204767227172852, 4.4793195724487305, 4.917078971862793, 4.6168060302734375, 4.034252166748047, 4.777603626251221, 3.8367934226989746, 2.581425905227661, 4.883298873901367, 6.499024391174316, 6.819001197814941, 6.436916351318359, 6.361236572265625, 6.565954208374023, 6.895534038543701, 6.533258438110352, 5.940182685852051, 6.407447814941406, 6.702744483947754, 6.915684223175049, 5.857100963592529, 5.753293991088867, 6.391761779785156, 6.6148858070373535, 6.838916301727295, 6.827373504638672, 7.2509918212890625, 5.973848342895508, 5.134106159210205, 4.687218189239502, 5.174502849578857, 4.272761344909668, 4.38089656829834, 5.3956098556518555, 3.688282012939453, 2.7381577491760254, 4.713573932647705, 4.849506378173828, 4.855987548828125, 5.868541717529297, 5.7536845207214355, 5.283783912658691, 6.3168044090271, 6.5483222007751465, 6.609897136688232, 5.935046195983887, 5.768954277038574, 5.882255554199219, 5.845832824707031, 5.801219940185547, 6.735013961791992, 7.430286884307861, 7.312880516052246, 6.751949310302734, 6.533579349517822, 5.302886962890625, 4.734694004058838, 3.551920175552368, 4.619813442230225, 3.7349259853363037, 5.561623573303223, 4.851645469665527, 3.4406816959381104, 2.659179210662842, 4.05966854095459, 4.822531700134277, 5.739271640777588, 6.081024646759033, 4.918475151062012, 5.780801296234131, 6.09572172164917, 4.917065620422363, 5.084287166595459, 4.7585272789001465, 5.7992658615112305, 5.7665863037109375, 6.2052836418151855, 6.941603660583496, 6.953282833099365, 6.858116626739502, 6.802121639251709, 6.560263633728027, 6.2250871658325195, 5.7987871170043945, 5.006619930267334, 4.471945762634277, 4.0871148109436035, 3.1970670223236084, 4.6337456703186035, 4.35653018951416, 3.8563308715820312, 3.0160434246063232, 3.722121000289917, 3.520620584487915, 4.138420104980469, 4.435423851013184, 4.729303359985352, 4.749323844909668, 4.351247310638428, 4.8703107833862305, 5.588219165802002, 4.263227462768555, 4.344891548156738, 4.3052287101745605, 5.122928619384766, 5.113348007202148, 5.286133766174316, 6.065820217132568, 5.56456995010376, 5.59482479095459, 6.572457313537598, 5.782894134521484, 4.598390579223633, 4.285579681396484, 3.549180507659912, 2.9835920333862305, 4.15460205078125, 3.9085891246795654, 3.3583548069000244, 2.4750802516937256, 3.1481423377990723, 2.2642829418182373, 2.6384780406951904, 2.46002197265625, 3.12788987159729, 3.4764626026153564, 3.276197671890259, 2.722459077835083, 2.5000221729278564, 2.2075412273406982, 2.5658326148986816, 2.6242706775665283, 3.471113443374634, 4.452413082122803, 3.385223388671875, 3.3672432899475098, 4.174978733062744, 4.411018371582031, 3.4093639850616455, 2.5924768447875977, 2.443653106689453, 2.5403270721435547, 2.0900635719299316, 2.3903775215148926, 2.6572184562683105, 2.8129777908325195, 2.2036917209625244, 1.1435484886169434, 2.52400279045105, 3.165253162384033, 3.502800703048706, 4.347870826721191, 4.296315670013428, 5.704123497009277, 4.5475664138793945, 5.457680702209473, 5.080351829528809, 4.943221092224121, 4.593735218048096, 4.125492095947266, 4.149023056030273, 3.931511640548706, 4.2679338455200195, 4.794663906097412, 4.475293159484863, 3.7262935638427734, 2.5091216564178467, 3.2166337966918945, 3.2772672176361084, 4.037117958068848, 4.115625381469727, 5.127233028411865, 4.529208660125732, 3.9060769081115723, 3.4512312412261963, 3.0693535804748535, 3.193803071975708, 3.5547115802764893, 5.689796447753906, 4.345883846282959, 5.686831474304199, 5.171191215515137, 6.09507417678833, 6.509805679321289, 6.4268059730529785, 6.511223316192627, 5.1806793212890625, 4.684070587158203, 4.344504356384277, 5.245388507843018, 5.434307098388672, 4.68705940246582, 5.472081661224365, 4.410470485687256, 3.7942726612091064, 3.932939291000366, 3.9733197689056396, 4.4389166831970215, 5.619707107543945, 5.324148178100586, 5.712085723876953, 5.716753005981445, 3.8945071697235107, 3.5716512203216553, 3.7574357986450195, 5.373056888580322, 5.84750509262085, 7.5449066162109375, 6.6786298751831055, 7.305527210235596, 8.026456832885742, 7.810576438903809, 7.144786357879639, 6.457982540130615, 5.974158763885498, 5.991199493408203, 7.095931529998779, 7.651679992675781, 6.749024868011475, 6.85520601272583, 5.551804542541504, 5.325055122375488, 5.449587345123291, 6.314137935638428, 5.845478534698486, 7.208311557769775, 5.828458309173584, 7.129264831542969, 6.569499969482422, 7.045889854431152, 3.946411609649658, 3.752075433731079, 5.296473026275635, 5.849316120147705, 6.321750640869141, 5.872434139251709, 7.1910400390625, 6.886129856109619, 6.534182548522949, 6.236423492431641, 6.363914489746094, 5.6287407875061035, 6.317570686340332, 5.329956531524658, 5.625849723815918, 5.473309516906738, 6.272270202636719, 6.576813697814941, 5.845329761505127, 5.923728942871094, 5.82245397567749, 5.600673675537109, 5.972432613372803, 5.977684020996094, 6.501760959625244, 6.246023654937744, 7.207916259765625, 7.358753204345703, 5.682311058044434, 4.24839973449707, 3.4013969898223877, 5.657849311828613, 7.045124053955078, 7.570677280426025, 7.576658725738525, 6.749503135681152, 6.117526054382324, 6.83970308303833, 6.349066734313965, 5.578237056732178, 6.667503833770752, 5.305588722229004, 5.672029495239258, 6.872105598449707, 7.720404624938965, 6.995780944824219, 7.980428695678711, 6.143412113189697, 6.530029296875, 5.648902893066406, 4.738765716552734, 6.948747158050537, 6.547727108001709, 5.504863262176514, 5.595342636108398, 7.268393039703369, 4.697260856628418, 3.240591287612915, 4.2244391441345215, 5.147584915161133, 7.472893714904785, 7.317368507385254, 6.606451034545898, 7.392080307006836, 7.406539440155029, 6.403765678405762, 6.286628723144531, 4.429027557373047, 4.386192321777344, 4.562081336975098, 5.502200603485107, 6.755485534667969, 6.760163307189941, 7.402335166931152, 6.956560134887695, 6.192713260650635, 6.2057600021362305, 6.007743835449219, 5.755739212036133, 6.030967712402344, 7.70008659362793, 6.518562316894531, 6.692594051361084, 6.774037837982178, 5.054507255554199, 3.704357624053955, 3.58992600440979, 5.774341106414795, 7.1779866218566895, 6.935202598571777, 7.34958553314209, 7.961203575134277, 7.221621990203857, 5.910974025726318, 5.440716743469238, 4.5965962409973145, 5.293810844421387, 6.189445972442627, 6.479820251464844, 6.794254302978516, 7.219387531280518, 6.939843654632568, 7.481221675872803, 6.452963352203369, 6.977911949157715, 7.660223960876465, 6.023192405700684, 5.733754634857178, 6.810184955596924, 6.875852584838867, 5.510063648223877, 5.626720905303955, 5.3057403564453125, 3.63822603225708, 4.314136028289795, 5.39378547668457, 7.098843574523926, 7.7813897132873535, 7.978065490722656, 7.183435916900635, 7.633219242095947, 6.598759174346924, 6.090313911437988, 5.585630893707275, 7.0768914222717285, 5.737856864929199, 7.209392070770264, 7.060626983642578, 7.706483840942383, 8.024003028869629, 6.243912696838379, 6.98289155960083, 6.6882548332214355, 7.096583843231201, 5.597083568572998, 5.216723918914795, 6.572110652923584, 6.698331832885742, 6.551477432250977, 6.3403120040893555, 5.663112640380859, 3.8867416381835938, 3.6506285667419434, 5.627645969390869, 7.386089324951172, 7.614626407623291, 7.952528953552246, 8.336812973022461, 7.807730674743652, 7.669647216796875, 6.688815116882324, 7.300356864929199, 6.749782085418701, 7.263515472412109, 7.92033052444458, 7.835973739624023, 9.403958320617676, 7.998075485229492, 7.881274700164795, 7.947988033294678, 7.768646717071533, 7.456582069396973, 6.831790924072266, 6.8510894775390625, 5.8263750076293945, 6.343064308166504, 6.0214314460754395, 5.833292007446289, 4.46042537689209, 3.947190284729004, 4.092008590698242, 5.6582465171813965, 7.3077216148376465, 7.457240581512451, 7.968886852264404, 7.152380466461182, 8.19394302368164, 7.494239330291748, 6.892577648162842, 6.520018577575684, 8.106639862060547, 7.924369812011719, 7.683856964111328, 7.581808090209961, 7.467813014984131, 8.669620513916016, 6.984014987945557, 6.0757575035095215, 6.865019798278809, 6.540661811828613, 5.842505931854248, 6.114515781402588, 6.3000335693359375, 5.56189489364624, 5.515049457550049, 6.534458160400391, 5.0378313064575195, 2.874962091445923, 4.413085460662842, 5.668405532836914, 7.102505207061768, 9.131957054138184, 8.559934616088867, 8.027544975280762, 7.65233850479126, 7.460061073303223, 6.759132385253906, 6.032953262329102, 8.70438003540039, 7.280664443969727, 7.80552864074707, 7.244898319244385, 8.220932006835938, 8.274178504943848, 7.139167785644531, 6.212144374847412, 8.37277603149414, 8.110738754272461, 6.00670051574707, 6.537335395812988, 6.864537715911865, 5.542061805725098, 5.186789035797119, 6.662757396697998, 4.678244590759277, 3.208954334259033, 4.009609222412109, 4.458127975463867, 6.092782020568848, 6.840810298919678, 7.553012371063232, 8.082088470458984, 6.404792785644531, 7.834621429443359, 7.911612510681152, 6.580926418304443, 7.489254951477051, 8.286792755126953, 7.55498743057251, 7.926847457885742, 8.410984992980957, 6.5161967277526855, 7.939115524291992, 7.604370594024658, 7.384326457977295, 7.10532808303833, 5.6735029220581055, 6.3784990310668945, 7.997756004333496, 5.810494422912598, 5.75977897644043, 5.490400791168213, 5.425533771514893, 3.3697831630706787, 4.638559341430664, 6.674952030181885, 7.101352214813232, 7.541275978088379, 8.34732437133789, 7.390615463256836, 7.985443115234375, 7.309440612792969, 8.16854476928711, 6.42495584487915, 6.623607158660889, 7.612723350524902, 7.543869495391846, 7.364530086517334, 7.770857334136963, 6.868845462799072, 7.3428120613098145, 7.49063777923584, 7.336343288421631, 7.580382823944092, 6.278316974639893, 6.683911323547363, 7.0734453201293945, 6.146418571472168, 5.373798370361328, 5.83707332611084, 5.264054775238037, 3.823157787322998, 4.243144512176514, 6.03836727142334, 5.79146671295166, 6.462274551391602, 6.757336139678955, 8.04151725769043, 7.323323726654053, 7.039154529571533, 6.869834899902344, 7.391819953918457, 6.70973539352417, 7.655643463134766, 7.546590805053711, 6.997421741485596, 8.049049377441406, 7.892543315887451, 6.691393852233887, 7.677867889404297, 6.8763108253479, 6.365528583526611, 6.453582763671875, 5.711686611175537, 7.233725070953369, 6.46472692489624, 6.447359561920166, 7.171540260314941, 5.4105610847473145, 2.80533504486084, 4.296957969665527, 5.781826972961426, 8.270809173583984, 6.287813663482666, 7.81126070022583, 7.582653522491455, 6.872658729553223, 6.733245849609375, 5.652984142303467, 5.739278316497803, 6.498867034912109, 7.471247673034668, 7.808947563171387, 7.271650791168213, 7.5674309730529785, 7.607096195220947, 6.497032642364502, 6.270516395568848, 6.1938700675964355, 6.807107925415039, 6.21030855178833, 6.71293306350708, 6.112264633178711, 6.8372273445129395, 7.151171684265137, 6.779052734375, 4.537436008453369, 3.9464480876922607, 4.508073329925537, 5.578921794891357, 6.408013343811035, 6.263176918029785, 5.6069207191467285, 6.19005823135376, 6.303774356842041, 6.598062992095947, 6.389190673828125, 6.835378646850586, 6.454019546508789, 5.703103065490723, 5.761590480804443, 6.646092414855957, 6.372530937194824, 6.616009712219238, 6.513986587524414, 5.260430812835693, 6.086435317993164, 6.504850387573242, 6.526801586151123, 6.9537353515625, 5.953154563903809, 7.29308557510376, 6.861425876617432, 7.016542911529541, 5.6920671463012695, 4.022275924682617, 5.833547115325928, 6.278161525726318, 8.377079010009766, 7.426436424255371, 6.58408260345459, 6.419290542602539, 6.794429302215576, 5.779304027557373, 6.109611511230469, 6.050237655639648, 6.247504711151123, 6.040704250335693, 5.927723407745361, 6.852834701538086, 5.715262413024902, 5.279617786407471, 5.703218460083008, 5.275202751159668, 5.972471714019775, 6.2321319580078125, 6.962075710296631, 5.868149757385254, 7.087619781494141, 5.514222621917725, 5.07296085357666, 7.14127779006958, 5.646332263946533, 4.026494979858398, 5.2456955909729, 6.482807159423828, 7.765154838562012, 7.661410808563232, 6.651157379150391, 5.240821361541748, 5.290289878845215, 4.94150447845459, 5.417673587799072, 5.711050510406494, 6.079514503479004, 5.105689525604248, 5.676534175872803, 6.539678573608398, 6.088123798370361, 5.987796783447266, 5.545947551727295, 6.225988864898682, 5.878376007080078, 5.686517238616943, 5.993981838226318, 6.628848552703857, 6.774481773376465, 5.430115699768066, 6.307953834533691, 6.875029563903809, 5.405179500579834, 4.241992950439453, 5.692997932434082, 6.848684787750244, 8.815496444702148, 8.220576286315918, 7.556948184967041, 6.310007572174072, 5.652033805847168, 5.540980339050293, 5.590035915374756, 6.3872880935668945, 6.394113063812256, 6.231522560119629, 6.167831897735596, 5.429182529449463, 6.019172668457031, 5.218844413757324, 5.659490585327148, 6.677648544311523, 5.681858062744141, 5.098740577697754, 7.367366313934326, 6.390179634094238, 5.7945051193237305, 5.669898986816406, 6.088277816772461, 5.5099358558654785, 5.50696325302124, 3.9212846755981445, 5.205246925354004, 6.700564384460449, 8.294177055358887, 8.298133850097656, 7.127223014831543, 7.008530616760254, 6.943134307861328, 5.833122253417969, 5.8671555519104, 5.946028709411621, 5.868824481964111, 5.7779693603515625, 5.206081390380859, 5.737120151519775, 5.6104817390441895, 5.522561550140381, 6.8975934982299805, 6.725090503692627, 6.203493595123291, 6.702034950256348, 6.938797950744629, 6.519297122955322, 5.595472812652588, 5.642085075378418, 5.517557621002197, 5.427228927612305, 4.275985240936279, 3.884026288986206, 5.921699523925781, 7.901666641235352, 9.340221405029297, 9.11366081237793, 8.773746490478516, 7.588698387145996, 6.856313705444336, 6.259122371673584, 5.7315521240234375, 6.8590192794799805, 6.832223415374756, 5.417583465576172, 6.214897632598877, 6.265425205230713, 5.218284606933594, 6.385766506195068, 7.0088605880737305, 7.273606300354004, 7.828249454498291, 5.838289737701416, 6.8142194747924805, 6.74099063873291, 6.034631252288818, 4.2431793212890625, 7.205927848815918, 5.654239177703857, 4.729642868041992, 3.2859365940093994, 5.236778736114502, 5.946460723876953, 7.964626312255859, 9.175009727478027, 7.707113265991211, 6.871372222900391, 6.655582427978516, 7.1903076171875, 7.132078170776367, 6.86709451675415, 5.852536678314209, 6.360345363616943, 7.310986518859863, 6.9999189376831055, 6.701786994934082, 6.731369972229004, 7.378812313079834, 7.52600622177124, 6.480673789978027, 6.31013298034668, 5.7380595207214355, 6.1647629737854, 4.651782512664795, 5.330686092376709, 5.385446071624756, 5.826076507568359, 4.236667156219482, 3.3924407958984375, 4.626141548156738, 6.036589622497559, 8.292861938476562, 7.6899871826171875, 7.4742841720581055, 7.684292793273926, 6.254748344421387, 7.026541233062744, 7.5017781257629395, 7.454955101013184, 7.174232482910156, 6.843647480010986, 6.456910133361816, 6.911912441253662, 6.705629348754883, 6.960684299468994, 7.3985137939453125, 6.428985595703125, 7.881615161895752, 6.437742233276367, 6.203741073608398, 4.958103656768799, 5.888676166534424, 4.749706268310547, 4.579665660858154, 5.810343265533447, 4.6781134605407715, 3.1238887310028076, 4.99553108215332, 6.504934787750244, 6.675995826721191, 7.007935523986816, 8.130729675292969, 6.918252468109131, 7.116612911224365, 7.171481609344482, 6.671356201171875, 6.966259002685547, 6.380247116088867, 6.6988115310668945, 6.789542198181152, 6.6884050369262695, 6.971158027648926, 7.744241714477539, 6.6011199951171875, 7.456092357635498, 7.600779056549072, 6.869256496429443, 5.086513519287109, 4.859104633331299, 5.3563690185546875, 4.540724754333496, 4.455226898193359, 5.751420021057129, 4.61786413192749, 2.9501585960388184, 4.800101280212402, 5.22292947769165, 5.409628391265869, 6.511472225189209, 5.175256252288818, 6.163266181945801, 7.864991188049316, 6.383169651031494, 6.736834526062012, 6.895597457885742, 6.8785719871521, 6.845297336578369, 6.071908473968506, 6.664765357971191, 6.720370292663574, 7.2301411628723145, 8.586381912231445, 7.157754898071289, 6.9688873291015625, 6.721339702606201, 5.656956195831299, 4.202572345733643, 5.299525737762451, 5.08347749710083, 4.707847595214844, 5.321839332580566, 4.635975360870361, 3.327627420425415, 3.25540828704834, 4.719073295593262, 6.949295997619629, 6.254383087158203, 5.846550941467285, 5.8805341720581055, 6.666641712188721, 6.283603191375732, 5.635525226593018, 4.910268306732178, 6.132082462310791, 6.60806941986084, 6.863739967346191, 6.497899055480957, 7.869112968444824, 8.535358428955078, 6.826446533203125, 6.414265155792236, 7.368152141571045, 6.565025329589844, 5.509479999542236, 4.528772354125977, 4.7327494621276855, 3.728952646255493, 4.719567775726318, 4.262933731079102, 4.514932155609131, 3.7720751762390137, 3.4536631107330322, 4.266848564147949, 4.469205379486084, 5.195494174957275, 4.875516414642334, 4.6572065353393555, 4.673341274261475, 6.032546043395996, 5.128604888916016, 4.94541072845459, 4.857192516326904, 5.0027055740356445, 5.261643409729004, 5.264431953430176, 6.146677494049072, 6.153176307678223, 6.118354320526123, 6.696400165557861, 6.875555515289307, 6.454217910766602, 5.07643985748291, 5.374527454376221, 3.78085994720459, 3.4182393550872803, 4.377712249755859, 4.247468948364258, 4.018264293670654, 2.5568361282348633, 2.7819647789001465, 2.279353141784668, 3.821631908416748, 3.3959479331970215, 4.308562755584717, 3.6541576385498047, 3.9668805599212646, 3.945432424545288, 3.425093650817871, 3.158693313598633, 3.010206699371338, 3.230652332305908, 4.637901782989502, 4.636305809020996, 4.0465874671936035, 4.832135200500488, 5.241365432739258, 4.554310321807861, 4.463727951049805, 3.957218647003174, 3.4633774757385254, 3.563143730163574, 3.1350674629211426, 2.727098226547241, 3.024425506591797, 4.003588676452637, 2.1270153522491455, 2.180833339691162, 1.8703768253326416, 2.603483200073242, 3.2852156162261963, 4.005988121032715, 3.6023175716400146, 4.9025444984436035, 4.15168571472168, 5.136239051818848, 4.578837871551514, 3.766631603240967, 4.083011627197266, 3.86956787109375, 3.7455716133117676, 3.8906807899475098, 3.942728042602539, 3.906797170639038, 3.7968413829803467, 3.3282649517059326, 2.5904788970947266, 2.6643474102020264, 3.035281181335449, 3.455130100250244, 3.9544835090637207, 4.091948509216309, 4.086392879486084, 3.452658176422119, 3.1024250984191895, 2.6240086555480957, 3.054016351699829, 3.5103344917297363, 5.519575119018555, 4.828238487243652, 6.2267961502075195, 6.29265832901001, 6.241321086883545, 6.86297082901001, 6.774531841278076, 5.99482536315918, 5.237940311431885, 5.101888656616211, 5.022564888000488, 5.822328567504883, 5.490240097045898, 4.800595760345459, 5.707546234130859, 4.366952419281006, 4.027202129364014, 4.796886920928955, 4.615612506866455, 4.914134979248047, 6.293099880218506, 5.9117350578308105, 6.6978583335876465, 5.849307537078857, 4.250007629394531, 3.834322214126587, 3.906517505645752, 5.584568500518799, 6.517669200897217, 7.200510025024414, 6.924810409545898, 8.537259101867676, 8.289752006530762, 8.991813659667969, 7.947756767272949, 7.876143455505371, 7.446370601654053, 6.298060417175293, 6.455279350280762, 8.003582000732422, 7.309857368469238, 7.777343273162842, 6.753469467163086, 5.9890313148498535, 5.1484150886535645, 6.242847919464111, 5.687614440917969, 7.245532512664795, 6.976384162902832, 7.76430082321167, 7.367967128753662, 7.656999588012695, 5.449708461761475, 4.301788330078125, 4.489177227020264, 5.582221031188965, 8.05191707611084, 6.955801486968994, 7.840614318847656, 6.753674507141113, 7.471702575683594, 8.287826538085938, 7.668415069580078, 7.066873073577881, 6.915858268737793, 6.650197982788086, 6.295875549316406, 6.21583366394043, 6.714672088623047, 6.913327693939209, 7.068212985992432, 6.10079288482666, 6.152547836303711, 6.075178623199463, 5.257997989654541, 6.250141620635986, 7.6399712562561035, 6.527362823486328, 7.112651824951172, 7.798730373382568, 6.2289533615112305, 4.6814799308776855, 3.4081432819366455, 6.482717037200928, 6.544360160827637, 7.243502140045166, 8.02273178100586, 7.578365325927734, 7.463115692138672, 7.263454914093018, 6.500670909881592, 6.474251747131348, 6.440454483032227, 5.720513343811035, 6.7410383224487305, 6.822536945343018, 7.421712398529053, 7.428711891174316, 8.018278121948242, 6.810391902923584, 6.771523952484131, 6.566008567810059, 5.232820510864258, 7.651691436767578, 6.611204147338867, 6.616034984588623, 6.179591655731201, 6.90195894241333, 4.731158256530762, 3.9553661346435547, 3.9897284507751465, 6.278453350067139, 8.082076072692871, 6.887862682342529, 7.006779670715332, 7.018038749694824, 7.439146041870117, 6.5676116943359375, 5.78813362121582, 4.829503059387207, 4.895888328552246, 4.927037239074707, 4.961817264556885, 6.293590068817139, 7.138431549072266, 7.115050792694092, 6.829102516174316, 6.411773681640625, 7.056618690490723, 6.135532855987549, 5.781322956085205, 6.764388561248779, 7.943070411682129, 6.439314365386963, 7.2001166343688965, 7.161802291870117, 5.53963041305542, 4.323574542999268, 3.919957399368286, 5.765800952911377, 7.278736591339111, 8.10603141784668, 7.971484184265137, 7.573345184326172, 7.265136241912842, 6.448080062866211, 5.798795700073242, 4.783041954040527, 5.133928298950195, 5.824971675872803, 5.991284370422363, 7.300806045532227, 8.298169136047363, 7.6028313636779785, 8.578134536743164, 6.426728248596191, 7.60033655166626, 7.755202293395996, 6.328132152557373, 6.608032703399658, 7.048530101776123, 7.062808513641357, 6.290461540222168, 6.667139053344727, 5.871878147125244, 4.0874738693237305, 3.943798065185547, 5.8292927742004395, 7.134096622467041, 7.818609714508057, 8.142271041870117, 8.787114143371582, 8.772844314575195, 6.7421650886535645, 6.587090969085693, 5.746520042419434, 6.7172322273254395, 6.209388732910156, 7.2420573234558105, 8.321240425109863, 7.912509441375732, 9.357992172241211, 7.992945194244385, 7.2997050285339355, 7.323339939117432, 7.226378440856934, 6.34218168258667, 5.977824687957764, 6.914531707763672, 7.032386302947998, 7.082833766937256, 6.5227251052856445, 6.237281322479248, 4.551864147186279, 3.4817371368408203, 5.5441060066223145, 7.703098297119141, 8.455087661743164, 8.681509017944336, 9.17882251739502, 8.156686782836914, 8.394423484802246, 7.089653015136719, 7.215301990509033, 7.347604274749756, 7.654406547546387, 7.467312335968018, 8.535542488098145, 9.247997283935547, 8.838513374328613, 8.631396293640137, 7.456973552703857, 8.384678840637207, 8.065250396728516, 6.536453723907471, 7.043973445892334, 7.06083869934082, 7.29503059387207, 6.148665904998779, 6.341291904449463, 5.799539089202881, 3.649014949798584, 4.243544101715088, 5.655839920043945, 7.4116597175598145, 8.349804878234863, 9.066568374633789, 8.200996398925781, 8.107145309448242, 7.716075420379639, 7.872780799865723, 7.067227363586426, 8.475287437438965, 8.401825904846191, 8.127985000610352, 8.50860595703125, 8.498010635375977, 9.106338500976562, 6.5505475997924805, 6.794779300689697, 7.800652027130127, 7.07221794128418, 6.1291184425354, 6.682796001434326, 6.917970180511475, 6.340127468109131, 5.707733154296875, 6.856043338775635, 5.816882133483887, 3.012432098388672, 4.0735063552856445, 6.241373538970947, 7.826561450958252, 9.106109619140625, 8.768965721130371, 8.577768325805664, 8.646924018859863, 7.811676979064941, 7.222579002380371, 7.121894836425781, 8.214712142944336, 8.608205795288086, 9.062278747558594, 8.059473037719727, 8.863489151000977, 8.411408424377441, 7.209865570068359, 7.646240711212158, 8.933496475219727, 7.865797996520996, 6.729373931884766, 7.462626934051514, 7.291512966156006, 6.015741348266602, 4.758931636810303, 7.331221103668213, 5.0614542961120605, 3.3887176513671875, 4.247756481170654, 5.2371602058410645, 7.047183990478516, 7.542632579803467, 8.254021644592285, 7.241975784301758, 7.4838433265686035, 8.702640533447266, 8.376494407653809, 7.403518199920654, 8.321398735046387, 8.283356666564941, 8.047344207763672, 8.570982933044434, 8.718826293945312, 8.249454498291016, 7.853957176208496, 7.835235595703125, 8.45088005065918, 7.624905586242676, 6.794653415679932, 6.241272449493408, 7.734198093414307, 6.035521507263184, 5.542339324951172, 6.976151466369629, 5.533352375030518, 3.376338481903076, 4.215917110443115, 6.2995924949646, 7.720334053039551, 7.9631547927856445, 9.040657997131348, 8.637097358703613, 8.1820650100708, 7.462625503540039, 8.744978904724121, 6.982155799865723, 8.044109344482422, 7.899949550628662, 7.603071689605713, 8.082720756530762, 8.629255294799805, 7.407938003540039, 7.635019302368164, 8.15047836303711, 8.340364456176758, 7.528632640838623, 6.922492027282715, 6.870516777038574, 7.4699015617370605, 6.058656692504883, 5.684976100921631, 6.938494682312012, 5.071656227111816, 4.118892669677734, 3.550159454345703, 5.369021415710449, 6.7042341232299805, 7.370365142822266, 6.989755630493164, 8.862140655517578, 7.720821380615234, 7.707885265350342, 7.581509113311768, 7.278854846954346, 6.9319024085998535, 8.003791809082031, 7.809274673461914, 7.80928373336792, 8.514671325683594, 7.88873815536499, 7.803362846374512, 8.384634971618652, 7.469552516937256, 6.816136360168457, 6.994607448577881, 6.483909606933594, 8.0116548538208, 6.380871295928955, 7.512526988983154, 7.479429721832275, 5.41879415512085, 3.8336198329925537, 4.16368293762207, 5.9980902671813965, 7.781457901000977, 7.339334011077881, 8.326160430908203, 8.174034118652344, 8.07919979095459, 7.936495780944824, 7.020162582397461, 6.229165554046631, 7.256068706512451, 7.276081562042236, 7.6319169998168945, 8.08135986328125, 8.142187118530273, 7.996155738830566, 7.461594581604004, 7.137345314025879, 6.220072269439697, 7.670708179473877, 6.750237941741943, 7.4794511795043945, 7.0698466300964355, 6.746021747589111, 7.466768264770508, 7.693990230560303, 5.253115653991699, 3.9971766471862793, 4.770330429077148, 6.480035305023193, 7.274012088775635, 7.405923843383789, 6.368330955505371, 7.286518573760986, 6.415077209472656, 7.301735877990723, 6.83720064163208, 6.781296730041504, 7.241331100463867, 7.265191555023193, 7.2180304527282715, 7.338443279266357, 7.31530237197876, 7.186456680297852, 7.077353000640869, 6.634458065032959, 6.346734523773193, 6.952723026275635, 6.5895795822143555, 7.169858455657959, 6.6097187995910645, 7.659816265106201, 7.515051364898682, 6.701566219329834, 6.2400736808776855, 4.216658115386963, 5.930006980895996, 6.598731994628906, 9.207152366638184, 7.996828079223633, 7.286327362060547, 6.931401252746582, 6.551219463348389, 6.2771077156066895, 6.070915699005127, 6.4323554039001465, 6.9709320068359375, 6.27870512008667, 7.058892250061035, 8.241988182067871, 7.027430057525635, 6.261807441711426, 6.435437202453613, 5.419071674346924, 6.200955390930176, 6.523465156555176, 6.4291157722473145, 7.19175386428833, 6.9703755378723145, 6.4971513748168945, 6.8951520919799805, 7.054279804229736, 5.374155044555664, 4.442876815795898, 4.770874500274658, 6.305724143981934, 7.766494274139404, 7.454823017120361, 6.290947437286377, 5.885922908782959, 6.357832908630371, 5.868226051330566, 5.361695289611816, 5.9194722175598145, 6.694036960601807, 5.384411334991455, 5.958657264709473, 7.021126747131348, 5.774927139282227, 5.896429061889648, 5.742417812347412, 6.2224297523498535, 6.654330253601074, 6.003856182098389, 6.094639778137207, 7.10581636428833, 6.784048557281494, 6.81868314743042, 6.243104934692383, 7.363532543182373, 6.65187406539917, 4.269463062286377, 5.341707706451416, 6.648170471191406, 9.13231372833252, 8.187795639038086, 7.5406317710876465, 6.424193382263184, 6.364816188812256, 6.4215779304504395, 6.181591987609863, 6.618029594421387, 6.16114616394043, 5.5730366706848145, 6.38032341003418, 5.9795660972595215, 5.050936698913574, 5.211459636688232, 5.355837821960449, 6.3914055824279785, 6.649997711181641, 5.433623313903809, 7.791899681091309, 7.143691539764404, 6.65475606918335, 6.100619316101074, 6.058295726776123, 6.78510856628418, 5.673253536224365, 4.315708637237549, 5.348756790161133, 7.828981399536133, 9.37298583984375, 8.422372817993164, 8.146377563476562, 7.483462333679199, 6.805903434753418, 6.016849040985107, 6.290079116821289, 6.577728271484375, 6.438807964324951, 5.843213081359863, 5.941897392272949, 5.9305219650268555, 5.445740222930908, 5.995379447937012, 6.58752965927124, 7.40410041809082, 6.563519477844238, 6.54197359085083, 7.962352275848389, 7.487809658050537, 6.108890056610107, 5.568289279937744, 5.962348937988281, 6.926446437835693, 4.388125419616699, 4.415773868560791, 5.478529930114746, 8.049479484558105, 10.33199405670166, 10.138558387756348, 9.200112342834473, 7.999456882476807, 7.59723424911499, 6.544178009033203, 6.155827522277832, 6.843456745147705, 6.710201740264893, 6.549868106842041, 7.447149753570557, 6.739598274230957, 6.216827869415283, 6.9541730880737305, 7.825479984283447, 8.27694034576416, 7.207365989685059, 6.157331466674805, 8.279467582702637, 6.587331295013428, 6.00657844543457, 5.1310577392578125, 6.990131855010986, 5.611632823944092, 4.871783256530762, 4.314841270446777, 5.120392322540283, 7.321148872375488, 8.90206241607666, 10.124235153198242, 8.87435245513916, 7.458608150482178, 7.139942169189453, 6.7299275398254395, 6.721123218536377, 7.222983360290527, 6.937041282653809, 6.861049175262451, 7.24903678894043, 7.294086933135986, 7.313735485076904, 7.523110866546631, 8.357088088989258, 7.896797180175781, 6.812824726104736, 7.726426124572754, 6.40013313293457, 6.193585395812988, 5.3818535804748535, 5.666326522827148, 5.47149658203125, 5.5317816734313965, 4.458008289337158, 3.9758965969085693, 5.154318332672119, 6.228303909301758, 8.621688842773438, 8.70842170715332, 8.736471176147461, 8.474759101867676, 6.596024990081787, 7.484323024749756, 7.682872295379639, 7.91606330871582, 7.565097332000732, 6.933408737182617, 7.193292140960693, 6.58341121673584, 6.097761154174805, 7.461974620819092, 8.219252586364746, 7.012781143188477, 8.251564025878906, 7.400546073913574, 6.642570972442627, 5.779418468475342, 6.6644182205200195, 5.492361068725586, 5.6451520919799805, 5.528519630432129, 5.380626678466797, 3.439495801925659, 4.933900833129883, 6.535992622375488, 7.761746406555176, 7.723395347595215, 7.787410736083984, 7.574105262756348, 7.782384395599365, 8.065847396850586, 7.123992919921875, 7.917050361633301, 7.08133602142334, 7.375625133514404, 7.297895908355713, 6.301681995391846, 7.16228723526001, 7.981967449188232, 7.1386027336120605, 7.501680850982666, 7.396378040313721, 7.363884449005127, 5.405313968658447, 5.704655647277832, 5.467577934265137, 5.844658851623535, 4.662642002105713, 6.1152024269104, 5.1936116218566895, 3.409467935562134, 3.8452842235565186, 5.735974311828613, 7.340625286102295, 6.757442951202393, 6.256167411804199, 6.236135005950928, 7.417637825012207, 7.9107584953308105, 7.4164557456970215, 7.558160781860352, 7.413923263549805, 7.874259948730469, 7.298729419708252, 6.48876428604126, 7.527186870574951, 8.217377662658691, 8.080345153808594, 7.105529308319092, 8.64483642578125, 7.261570930480957, 5.594974040985107, 4.771148681640625, 5.758846282958984, 4.807955265045166, 4.238485336303711, 6.552634239196777, 5.0099310874938965, 3.466451406478882, 3.6827025413513184, 5.552952289581299, 6.633671283721924, 6.542299747467041, 7.21600341796875, 6.4740681648254395, 7.568094730377197, 7.1920294761657715, 6.511671543121338, 6.363155364990234, 6.60199499130249, 6.4376678466796875, 7.003757953643799, 7.474374771118164, 8.565499305725098, 8.806076049804688, 8.01609992980957, 8.07597541809082, 7.7936530113220215, 7.167993545532227, 6.139338493347168, 4.826488494873047, 5.4796671867370605, 3.5887632369995117, 4.471940040588379, 5.428883075714111, 4.340094089508057, 3.675584077835083, 3.236992835998535, 5.125133037567139, 4.929214000701904, 6.141031742095947, 4.758671760559082, 5.018918991088867, 6.453536510467529, 5.985088348388672, 5.321563720703125, 5.156036853790283, 5.486634731292725, 6.123489856719971, 5.41444730758667, 5.969549655914307, 7.388062000274658, 6.862349033355713, 6.950205326080322, 7.530351638793945, 7.204026699066162, 6.581313133239746, 5.622174263000488, 5.493897914886475, 4.628284454345703, 3.4716973304748535, 4.869358062744141, 4.657447814941406, 3.736478328704834, 3.4223875999450684, 3.18477725982666, 3.4876980781555176, 4.380180358886719, 4.1447954177856445, 4.944061279296875, 4.632238864898682, 4.583991050720215, 4.329090595245361, 4.635887145996094, 4.013711452484131, 3.603024482727051, 3.9411299228668213, 5.509182453155518, 5.645819187164307, 5.3792243003845215, 6.272427558898926, 6.126620292663574, 5.454349040985107, 6.04160737991333, 5.301722049713135, 4.137617111206055, 4.357798099517822, 3.878729820251465, 2.788175582885742, 4.498402118682861, 4.637847423553467, 2.915602684020996, 2.943591594696045, 2.4081177711486816, 3.4155044555664062, 4.552705764770508, 4.210314750671387, 4.882124900817871, 4.772820472717285, 5.597034454345703, 5.908957004547119, 6.015359878540039, 5.211300373077393, 4.706801414489746, 4.951534748077393, 4.079789161682129, 4.701210021972656, 5.096108436584473, 4.741302490234375, 4.834022521972656, 4.220396995544434, 3.263324737548828, 3.9891316890716553, 3.102003335952759, 4.625210762023926, 4.6681060791015625, 5.038370609283447, 4.522942066192627, 5.6345415115356445, 3.401869535446167, 3.9042699337005615, 3.1358909606933594, 4.8407182693481445, 4.972800254821777, 6.403251647949219, 6.359066963195801, 6.507575511932373, 6.921120643615723, 6.342695713043213, 7.298419952392578, 5.784966468811035, 6.405872344970703, 5.2249755859375, 6.317343711853027, 6.438495635986328, 5.456596374511719, 5.439535617828369, 5.447464942932129, 4.877991199493408, 4.538195610046387, 5.220479488372803, 4.802392959594727, 5.659776210784912, 5.531468868255615, 6.024842262268066, 6.271884918212891, 5.7574896812438965, 4.2647385597229, 4.271764755249023, 5.440245151519775, 5.321437835693359, 7.445607662200928, 6.671215057373047, 7.481138229370117, 9.277994155883789, 8.566705703735352, 8.809435844421387, 7.866168975830078, 6.774760723114014, 7.294270992279053, 6.2940144538879395, 7.350539207458496, 7.042624473571777, 8.89132308959961, 6.889917373657227, 7.209521770477295, 5.715277671813965, 6.521198272705078, 6.100998401641846, 7.021849155426025, 7.179037094116211, 8.875638961791992, 7.259542942047119, 7.858376979827881, 7.4502153396606445, 5.800556182861328, 3.939950942993164, 5.444538116455078, 6.69776725769043, 7.927854537963867, 7.500884056091309, 7.706078052520752, 6.660575866699219, 7.323657512664795, 8.200979232788086, 7.106710433959961, 7.092154026031494, 7.225127220153809, 6.032289505004883, 6.218405246734619, 6.215244770050049, 6.764780044555664, 7.091534614562988, 7.493347644805908, 6.292037487030029, 5.979267120361328, 6.399107456207275, 5.613246917724609, 7.117490291595459, 7.891759395599365, 6.953584671020508, 7.616060733795166, 7.884692192077637, 6.92083215713501, 4.540272235870361, 4.529048919677734, 6.593637943267822, 7.980113983154297, 7.621458053588867, 8.393770217895508, 8.291817665100098, 7.892378330230713, 7.444828033447266, 6.787830352783203, 6.74427604675293, 6.840007781982422, 6.293020248413086, 6.705584526062012, 7.958480358123779, 7.245749473571777, 9.510625839233398, 7.3661370277404785, 7.485007286071777, 6.805482387542725, 6.5426249504089355, 6.1836347579956055, 7.305093765258789, 7.4756011962890625, 6.521860122680664, 7.0362677574157715, 6.722774982452393, 5.239256381988525, 4.648588180541992, 4.930453777313232, 6.592757701873779, 7.988646507263184, 6.732008934020996, 7.6357221603393555, 8.100422859191895, 8.047698020935059, 7.651314735412598, 6.528066158294678, 5.101097106933594, 5.980427265167236, 5.296300411224365, 6.223348140716553, 6.772875785827637, 8.106199264526367, 7.803153038024902, 7.781833171844482, 7.080074787139893, 6.855067729949951, 7.878048419952393, 6.244307994842529, 7.324441432952881, 7.982698917388916, 7.31374979019165, 7.174614906311035, 7.060138702392578, 6.01291036605835, 4.290827751159668, 4.66893196105957, 6.718655586242676, 6.967728614807129, 8.548542022705078, 8.035303115844727, 7.780910968780518, 7.558286190032959, 6.69295072555542, 5.973115921020508, 5.619586944580078, 6.155254364013672, 6.3160505294799805, 6.644039630889893, 7.545162677764893, 8.31121826171875, 8.364519119262695, 7.534916400909424, 6.645824432373047, 7.834839820861816, 8.174642562866211, 6.446305274963379, 7.118641376495361, 7.007678508758545, 7.515142440795898, 6.641562461853027, 7.347843170166016, 5.490956783294678, 4.345053195953369, 4.529764175415039, 6.720803260803223, 7.628700256347656, 8.68804931640625, 8.832040786743164, 9.047969818115234, 8.43349838256836, 6.828291416168213, 6.550621509552002, 6.795252323150635, 6.532116889953613, 7.588129997253418, 7.331699371337891, 8.407102584838867, 9.071990966796875, 8.560395240783691, 8.606700897216797, 7.279719829559326, 7.3409318923950195, 7.557511329650879, 6.241184234619141, 6.707944869995117, 7.008886337280273, 7.148837089538574, 7.063508987426758, 7.544142246246338, 6.303053855895996, 4.755401611328125, 4.394994735717773, 6.104007720947266, 7.6553955078125, 8.802268981933594, 9.368029594421387, 8.176673889160156, 9.221946716308594, 8.179828643798828, 8.58128547668457, 6.134121417999268, 8.218133926391602, 7.842369079589844, 8.548982620239258, 9.293373107910156, 9.532173156738281, 9.684195518493652, 9.04504108428955, 7.610432147979736, 8.845907211303711, 7.924130439758301, 7.611073970794678, 6.877602577209473, 8.057239532470703, 7.071751117706299, 6.713803768157959, 6.553739547729492, 5.79342794418335, 3.456047773361206, 5.060191631317139, 6.565321922302246, 8.382753372192383, 9.00363540649414, 8.947128295898438, 8.43779468536377, 8.088354110717773, 7.8459978103637695, 7.973756790161133, 7.525544166564941, 8.676958084106445, 7.895464897155762, 9.117752075195312, 7.983999252319336, 9.301626205444336, 8.622293472290039, 7.01611328125, 7.136401176452637, 8.332568168640137, 7.207948207855225, 6.514732360839844, 6.5873918533325195, 7.434520721435547, 6.17021369934082, 6.774796009063721, 6.955225467681885, 5.561819076538086, 3.5096275806427, 5.141127586364746, 6.310065746307373, 8.704364776611328, 8.801226615905762, 9.538808822631836, 9.10326862335205, 7.971104145050049, 8.885350227355957, 6.87433385848999, 8.086067199707031, 8.114404678344727, 9.489950180053711, 8.810670852661133, 8.787353515625, 8.198501586914062, 8.311576843261719, 7.58543062210083, 7.930424213409424, 9.250853538513184, 7.891689777374268, 7.249621868133545, 7.495689392089844, 7.658337116241455, 6.539583206176758, 5.842889785766602, 6.457348346710205, 6.1147332191467285, 3.3184585571289062, 4.639803886413574, 6.066635608673096, 7.398250102996826, 7.391118049621582, 8.054910659790039, 7.799158096313477, 7.926060676574707, 8.88174057006836, 8.34320068359375, 7.357519149780273, 8.188179016113281, 8.840387344360352, 8.22540283203125, 9.686868667602539, 8.10195255279541, 8.714503288269043, 8.155487060546875, 7.926244735717773, 8.519940376281738, 8.189336776733398, 6.688650131225586, 7.506110668182373, 7.114595413208008, 6.921280860900879, 6.047211170196533, 7.399843692779541, 5.776984214782715, 3.4653146266937256, 5.673786163330078, 7.097814083099365, 7.667608737945557, 9.028779983520508, 8.037284851074219, 9.67010498046875, 8.114699363708496, 8.154229164123535, 8.830330848693848, 7.868369102478027, 8.106575965881348, 8.334512710571289, 7.816351890563965, 7.484429836273193, 8.603498458862305, 8.141399383544922, 8.066600799560547, 8.647945404052734, 7.778641223907471, 8.180204391479492, 7.239842414855957, 7.520786285400391, 7.171224117279053, 6.796618938446045, 5.922966957092285, 7.903747081756592, 5.44240140914917, 4.537261962890625, 4.613799095153809, 6.3718438148498535, 7.649964809417725, 7.472533226013184, 8.343860626220703, 8.264366149902344, 8.171396255493164, 7.4016242027282715, 7.72161340713501, 7.502328872680664, 8.138317108154297, 8.821836471557617, 8.077417373657227, 8.263481140136719, 8.71328353881836, 8.30477523803711, 8.40759563446045, 8.048040390014648, 6.871930122375488, 8.035188674926758, 6.905635356903076, 7.078564167022705, 7.26768159866333, 6.802828788757324, 7.721186637878418, 8.15989875793457, 4.535089015960693, 4.5522050857543945, 4.160219669342041, 6.814077377319336, 7.623566150665283, 8.079675674438477, 9.095012664794922, 7.922213077545166, 8.725022315979004, 6.784661769866943, 6.961099147796631, 6.408068656921387, 7.134089469909668, 7.357115745544434, 7.449565410614014, 8.654023170471191, 8.893325805664062, 8.486991882324219, 7.357595920562744, 7.205568313598633, 7.416510581970215, 6.663835525512695, 7.934159755706787, 6.421158313751221, 8.100467681884766, 7.502780437469482, 7.866016864776611, 7.2231645584106445, 6.201012134552002, 3.6977810859680176, 5.673997402191162, 5.872472763061523, 7.845875263214111, 7.112312316894531, 6.632049083709717, 6.978693008422852, 7.097543239593506, 7.453385829925537, 7.547459602355957, 6.925804615020752, 7.288380146026611, 6.8592963218688965, 7.435245990753174, 7.4403395652771, 6.413015365600586, 6.981071949005127, 6.877388000488281, 7.042989253997803, 6.9859442710876465, 6.587242603302002, 7.4108757972717285, 6.540075778961182, 8.565922737121582, 6.7066216468811035, 7.937953472137451, 7.656081199645996, 5.963645935058594, 5.188539505004883, 6.644070625305176, 7.871513843536377, 8.951919555664062, 7.963439464569092, 7.539464950561523, 7.098389625549316, 6.917605876922607, 6.937303066253662, 6.627743721008301, 6.649238586425781, 7.32935905456543, 6.605583190917969, 7.5749125480651855, 8.271858215332031, 6.891741752624512, 5.885186672210693, 5.899007797241211, 6.595340728759766, 6.205586910247803, 7.119471073150635, 6.232281684875488, 8.026246070861816, 7.555284023284912, 6.449888229370117, 6.9494309425354, 7.122683525085449, 5.657406806945801, 4.678217887878418, 6.212108612060547, 7.2322516441345215, 8.904645919799805, 8.172581672668457, 6.796902179718018, 6.650074005126953, 6.581373691558838, 6.199220657348633, 5.464992523193359, 6.390783309936523, 6.304656505584717, 6.834390640258789, 7.169291019439697, 7.10237455368042, 6.387428283691406, 5.904223442077637, 7.317500591278076, 6.795461654663086, 6.870987892150879, 5.676639080047607, 7.258857727050781, 7.7955708503723145, 6.636299133300781, 7.045044898986816, 7.4129533767700195, 7.400186061859131, 6.627384662628174, 4.292605400085449, 6.3116583824157715, 7.535159111022949, 9.069350242614746, 8.10769271850586, 7.905355453491211, 7.145846366882324, 7.193889617919922, 7.209595203399658, 6.326510906219482, 6.803584575653076, 6.785276412963867, 6.654685974121094, 6.329283714294434, 7.129004955291748, 6.212754249572754, 5.748135566711426, 6.868315696716309, 6.265287399291992, 7.216700553894043, 6.6546454429626465, 7.9918646812438965, 6.870255947113037, 6.98442268371582, 6.125638008117676, 6.2806243896484375, 7.054490566253662, 5.9461989402771, 4.174554824829102, 6.53046178817749, 7.623913288116455, 9.194367408752441, 8.613333702087402, 8.058292388916016, 8.16323471069336, 6.415076732635498, 6.725686073303223, 6.580760955810547, 7.435550689697266, 6.6422929763793945, 5.491154670715332, 6.30501651763916, 6.0607757568359375, 5.850323677062988, 6.963491916656494, 6.7305216789245605, 7.461735725402832, 7.777988433837891, 6.968934059143066, 8.23245620727539, 7.9753336906433105, 5.830882549285889, 6.126745700836182, 6.31046199798584, 6.649620532989502, 5.1700544357299805, 4.247371673583984, 6.6471943855285645, 8.83233642578125, 9.83809757232666, 10.520944595336914, 9.654268264770508, 8.2440185546875, 7.553647041320801, 7.127190589904785, 6.244268417358398, 7.9011149406433105, 6.679019451141357, 6.9452433586120605, 7.265973091125488, 6.500314712524414, 7.057390213012695, 7.019138336181641, 7.307088851928711, 8.275253295898438, 7.114334583282471, 7.603177547454834, 7.817188262939453, 7.330692768096924, 5.8682780265808105, 6.956801891326904, 6.108575344085693, 6.942312240600586, 5.315757751464844, 4.869125843048096, 5.44290828704834, 7.505064964294434, 9.973287582397461, 9.110849380493164, 8.445547103881836, 7.560120105743408, 7.023768424987793, 7.390483856201172, 7.654696464538574, 7.859982013702393, 7.673663139343262, 7.440746784210205, 7.40837287902832, 7.85214376449585, 7.627874374389648, 8.124228477478027, 8.338550567626953, 7.375148773193359, 7.955121994018555, 7.016355991363525, 6.716066837310791, 5.57921028137207, 6.8088483810424805, 5.286153793334961, 5.784890174865723, 6.414973735809326, 5.0612568855285645, 4.544888496398926, 5.723962783813477, 7.441451549530029, 8.20474624633789, 9.581265449523926, 9.237419128417969, 7.478182315826416, 7.105653762817383, 7.166045665740967, 7.894039630889893, 7.854443550109863, 8.350812911987305, 7.277578830718994, 7.917288303375244, 6.948434352874756, 7.326450824737549, 8.524211883544922, 7.989777565002441, 8.075170516967773, 7.876446723937988, 7.774979114532471, 6.661962509155273, 5.819232940673828, 6.723250389099121, 5.140405178070068, 5.9208574295043945, 5.743823051452637, 5.267484664916992, 3.9199531078338623, 5.922440528869629, 6.8442301750183105, 8.04832649230957, 8.572059631347656, 7.0864996910095215, 8.3883056640625, 8.58860969543457, 7.719052791595459, 7.891063213348389, 7.3145527839660645, 8.302661895751953, 7.039443492889404, 7.073732852935791, 6.348031997680664, 7.825555801391602, 8.197175025939941, 8.481391906738281, 8.03282642364502, 8.007227897644043, 7.615357875823975, 6.14481258392334, 6.34602689743042, 6.139476776123047, 5.723891258239746, 5.5386552810668945, 5.903779983520508, 5.4504289627075195, 3.395373821258545, 5.218288421630859, 5.943708419799805, 7.842226505279541, 6.639304161071777, 6.411541938781738, 6.958476543426514, 6.525771141052246, 8.319413185119629, 7.945357322692871, 7.5102643966674805, 7.702415943145752, 7.428311347961426, 7.6779561042785645, 6.915814399719238, 7.024781703948975, 9.19648551940918, 7.933567523956299, 7.314455032348633, 8.329689025878906, 7.425938606262207, 5.745240211486816, 5.200801849365234, 6.033718109130859, 5.215399742126465, 5.789272785186768, 6.297717094421387, 5.663390636444092, 3.1003634929656982, 4.515284538269043, 6.160668849945068, 6.718803882598877, 6.791027545928955, 7.445572853088379, 6.247908592224121, 7.740589618682861, 7.200552940368652, 6.262696743011475, 7.037178039550781, 6.028714656829834, 6.994289875030518, 6.666837692260742, 8.29793930053711, 9.126954078674316, 8.226905822753906, 7.9043121337890625, 8.819740295410156, 7.670259952545166, 7.039021015167236, 6.195574760437012, 5.69387674331665, 4.468995571136475, 4.933579444885254, 4.477339744567871, 6.371801853179932, 4.856433868408203, 3.823512554168701, 4.397909164428711, 5.012456893920898, 5.659121513366699, 5.231391429901123, 6.205235481262207, 5.128827095031738, 6.730729103088379, 5.940730094909668, 6.05106782913208, 5.815041542053223, 5.1393585205078125, 6.001404762268066, 6.441266059875488, 6.313734531402588, 6.507625579833984, 7.162594318389893, 7.56852388381958, 6.728112697601318, 7.900069236755371, 6.801666736602783, 5.999033451080322, 5.498846530914307, 4.859588623046875, 4.4157257080078125, 4.365644454956055, 6.193647861480713, 3.185304641723633, 4.487245559692383, 2.9950191974639893, 4.072793960571289, 3.4487226009368896, 4.280717372894287, 4.627163410186768, 4.6001787185668945, 4.868387699127197, 4.165149688720703, 4.160248756408691, 3.61612868309021, 3.6060776710510254, 4.253468990325928, 5.005959510803223, 5.37836217880249, 5.701601982116699, 5.25340461730957, 5.555904865264893, 5.659604072570801, 5.058077335357666, 4.47704553604126, 3.838305950164795, 3.785482406616211, 4.011848449707031, 2.795576333999634, 4.631884574890137, 4.006619453430176, 3.2481956481933594, 2.7705392837524414, 2.3889875411987305, 3.4499683380126953, 4.092794418334961, 4.729759693145752, 5.617480278015137, 4.915008068084717, 5.379195213317871, 5.0898895263671875, 5.836490154266357, 5.097967147827148, 5.007519245147705, 4.360280513763428, 3.9949398040771484, 5.130117416381836, 5.088732719421387, 4.688352584838867, 4.173720359802246, 3.1722307205200195, 2.7121875286102295, 3.70691180229187, 3.4464874267578125, 4.565989017486572, 4.22446346282959, 4.435989856719971, 4.526424884796143, 4.552979946136475, 3.1467111110687256, 2.9872989654541016, 3.983858108520508, 4.406727313995361, 5.087893009185791, 5.528237819671631, 5.584824562072754, 6.949714183807373, 6.886672019958496, 7.35543966293335, 6.889841556549072, 5.805189609527588, 5.557732105255127, 4.778465270996094, 5.665993690490723, 5.795541286468506, 6.006855487823486, 5.666103839874268, 5.3176469802856445, 4.925075531005859, 3.99198842048645, 4.959914684295654, 4.90988302230835, 5.715484142303467, 6.281994819641113, 5.863285541534424, 5.968474388122559, 6.49648380279541, 4.069512367248535, 3.090761661529541, 4.810442924499512, 5.077966213226318, 6.939068794250488, 6.232307434082031, 7.5067973136901855, 7.344674587249756, 7.839746952056885, 7.4030351638793945, 7.11903190612793, 6.493905067443848, 6.6850152015686035, 6.0966105461120605, 6.883040428161621, 7.12143087387085, 7.359106063842773, 6.258880615234375, 6.334029197692871, 4.965483665466309, 6.169710636138916, 5.985751152038574, 6.4927778244018555, 6.165802955627441, 7.636598110198975, 6.186783313751221, 7.2513203620910645, 6.840655326843262, 5.057425022125244, 3.298799753189087, 5.425689697265625, 6.355487823486328, 6.633823871612549, 7.242070198059082, 6.790960788726807, 7.229211807250977, 6.395427227020264, 6.764856815338135, 6.326738357543945, 5.9655022621154785, 6.6849846839904785, 5.826943397521973, 5.33895206451416, 6.176266670227051, 6.65158224105835, 7.104736328125, 6.2829909324646, 5.794267177581787, 5.916261672973633, 5.719316005706787, 5.0660200119018555, 6.550695896148682, 6.9764509201049805, 6.760375022888184, 6.524836540222168, 7.928530216217041, 5.756552219390869, 3.631455898284912, 4.234208583831787, 5.670297145843506, 7.774929046630859, 7.414594650268555, 7.718250274658203, 6.9614787101745605, 6.81939697265625, 7.211390495300293, 6.6613874435424805, 5.227470397949219, 5.934618949890137, 5.8103203773498535, 6.071562767028809, 7.658333778381348, 7.4875874519348145, 8.38831901550293, 7.3054962158203125, 6.71491003036499, 6.118353843688965, 6.772969722747803, 5.96030330657959, 6.071291923522949, 7.480925559997559, 5.8465447425842285, 6.467356204986572, 6.173497200012207, 5.038364410400391, 3.085090160369873, 4.466079235076904, 6.189670085906982, 7.599391937255859, 6.715184688568115, 6.874555587768555, 7.70714807510376, 7.311507701873779, 6.358356952667236, 5.522676944732666, 4.576949119567871, 5.109398365020752, 5.268990993499756, 5.816418647766113, 6.930469989776611, 7.135263919830322, 6.812901973724365, 7.6391072273254395, 5.544484615325928, 6.331366539001465, 6.78462553024292, 5.934665679931641, 6.364713668823242, 7.289569854736328, 7.391012668609619, 6.6539130210876465, 6.77377986907959, 4.8659467697143555, 3.423274278640747, 4.593321800231934, 6.104065418243408, 7.779678821563721, 8.331075668334961, 7.496645927429199, 7.792694568634033, 7.193118572235107, 6.11899471282959, 5.479002952575684, 5.088560581207275, 5.79135274887085, 6.691822528839111, 6.207950115203857, 6.523082733154297, 7.788684844970703, 8.040122032165527, 7.23702335357666, 6.712890625, 6.584920883178711, 8.163880348205566, 6.076707363128662, 5.645916938781738, 6.745673179626465, 6.949706077575684, 5.894784927368164, 6.411678314208984, 5.403769493103027, 3.4073708057403564, 4.332186222076416, 5.921652793884277, 6.640989303588867, 7.716731548309326, 8.46003532409668, 7.732579708099365, 8.192419052124023, 7.252957344055176, 6.219673156738281, 6.292295455932617, 6.2155985832214355, 7.578280925750732, 7.390085697174072, 7.920919895172119, 8.36009407043457, 8.064353942871094, 7.681909084320068, 6.544063568115234, 7.3751912117004395, 7.090742588043213, 5.98576545715332, 5.9111647605896, 6.718644618988037, 7.269620895385742, 6.367872714996338, 6.448551177978516, 5.494810104370117, 3.4826674461364746, 4.729729175567627, 6.205973148345947, 7.964691162109375, 8.057106018066406, 8.683804512023926, 7.581296920776367, 8.122200012207031, 7.43869686126709, 7.329519748687744, 6.321308612823486, 7.942681312561035, 7.170229434967041, 8.49283218383789, 7.621267318725586, 8.450508117675781, 8.735687255859375, 8.278664588928223, 7.709115028381348, 7.83214807510376, 7.382601737976074, 6.726661682128906, 6.220920562744141, 6.606989860534668, 5.951491832733154, 6.21340799331665, 6.294184684753418, 5.211228370666504, 3.0567128658294678, 4.867868900299072, 5.909452438354492, 7.405152320861816, 8.119318008422852, 8.206103324890137, 8.17191219329834, 7.577372074127197, 8.451056480407715, 7.258306503295898, 6.904083728790283, 8.039443016052246, 8.516827583312988, 7.700410842895508, 7.654347896575928, 8.563041687011719, 8.123770713806152, 7.37811279296875, 5.704315185546875, 7.535321235656738, 7.199667453765869, 5.984556674957275, 5.945523738861084, 6.726284980773926, 6.210282325744629, 5.870871543884277, 6.457462310791016, 4.971002578735352, 2.702575445175171, 4.971735000610352, 6.086493492126465, 7.8507208824157715, 8.444992065429688, 9.07275390625, 8.371866226196289, 7.137189865112305, 7.146387577056885, 6.855519771575928, 6.86829137802124, 7.602756500244141, 8.854557037353516, 7.971351623535156, 8.607047080993652, 7.881050109863281, 8.078763961791992, 7.108847141265869, 6.895863056182861, 8.748943328857422, 8.28860092163086, 6.12202787399292, 6.13593053817749, 7.123262405395508, 6.00584077835083, 5.4237213134765625, 5.996216297149658, 5.363925933837891, 2.4892637729644775, 4.271420478820801, 5.681603908538818, 6.501996994018555, 7.4454426765441895, 7.2834391593933105, 7.97573184967041, 7.35728645324707, 8.083367347717285, 8.388158798217773, 6.91360330581665, 7.655386924743652, 7.786259651184082, 7.4624762535095215, 7.776367664337158, 7.974416732788086, 7.860690593719482, 8.260725975036621, 7.392161846160889, 7.234342575073242, 7.514803409576416, 6.207301139831543, 7.005532741546631, 7.477478504180908, 6.651895523071289, 5.316115379333496, 6.483354568481445, 5.457365036010742, 3.032891035079956, 5.291446208953857, 6.824755668640137, 7.398906230926514, 7.706767559051514, 7.978169918060303, 8.844301223754883, 7.318612575531006, 7.646206855773926, 7.697318077087402, 7.040740966796875, 7.033758163452148, 9.000666618347168, 7.710700511932373, 7.544606685638428, 7.928295612335205, 6.740315914154053, 7.472019195556641, 7.704442024230957, 6.970425605773926, 8.18310546875, 6.952320575714111, 6.368314743041992, 6.764659881591797, 6.123116970062256, 5.412430286407471, 6.504279613494873, 5.456511497497559, 3.4064056873321533, 4.111336708068848, 5.873008728027344, 6.705781936645508, 6.639942646026611, 8.002748489379883, 7.624157905578613, 8.08920669555664, 5.903035640716553, 7.101353168487549, 7.151569366455078, 6.996341228485107, 8.004693984985352, 7.812758922576904, 6.920068740844727, 8.199687004089355, 8.703899383544922, 7.698668479919434, 7.596954822540283, 6.296120643615723, 6.199636936187744, 6.682583808898926, 6.907206058502197, 6.94098424911499, 7.187792778015137, 6.7206339836120605, 7.5974626541137695, 4.671623706817627, 2.8863844871520996, 4.883058547973633, 6.087954044342041, 7.348825931549072, 6.9605255126953125, 7.312191963195801, 7.627211093902588, 7.614218235015869, 6.774760723114014, 5.6069159507751465, 6.398855209350586, 7.069138050079346, 7.327171325683594, 7.383914947509766, 7.454805850982666, 7.208347797393799, 7.532623767852783, 6.4115471839904785, 6.135554313659668, 7.018723011016846, 6.507133960723877, 7.583650588989258, 5.83528470993042, 7.2428998947143555, 6.826488018035889, 6.97613525390625, 7.243049621582031, 5.399211883544922, 3.116685390472412, 5.543663501739502, 4.810760974884033, 7.06575345993042, 5.923655033111572, 6.669677734375, 6.3666486740112305, 6.496708393096924, 7.034917831420898, 6.683435916900635, 6.409537315368652, 6.768743515014648, 5.785341262817383, 6.1599507331848145, 7.198557376861572, 6.344576358795166, 6.233543872833252, 6.426178932189941, 6.153179168701172, 6.567232608795166, 6.140944480895996, 6.546043872833252, 6.410592079162598, 7.123546600341797, 6.9612250328063965, 6.706984996795654, 7.052087783813477, 5.86361026763916, 3.7397079467773438, 6.863732814788818, 7.2206196784973145, 8.319173812866211, 8.089168548583984, 6.119740962982178, 6.712603569030762, 6.158452033996582, 5.747690677642822, 5.812795639038086, 5.911167621612549, 6.480658531188965, 6.105252742767334, 6.542699813842773, 7.086989879608154, 6.081159591674805, 5.239163875579834, 5.591967582702637, 5.876940727233887, 6.214056968688965, 6.63153076171875, 6.220327377319336, 7.1229376792907715, 6.519598007202148, 6.272609710693359, 5.849440574645996, 7.359367847442627, 5.863579273223877, 3.7674672603607178, 6.325873851776123, 6.6215949058532715, 7.838983058929443, 7.48823881149292, 6.388843536376953, 5.7526445388793945, 5.832766532897949, 5.86794900894165, 5.968330383300781, 6.202608585357666, 5.718400955200195, 5.513355731964111, 6.09714937210083, 7.157351970672607, 6.524827480316162, 5.039590358734131, 5.957592964172363, 6.640832901000977, 6.436806678771973, 5.376389980316162, 6.561003684997559, 6.595093250274658, 6.590754985809326, 5.395620346069336, 6.507045269012451, 7.4411420822143555, 6.056890964508057, 3.1743886470794678, 6.417211532592773, 7.42698335647583, 8.891714096069336, 8.441726684570312, 6.9530348777771, 6.039264678955078, 5.885826587677002, 6.2069830894470215, 5.846513748168945, 6.236888885498047, 6.750248432159424, 5.941531181335449, 5.829251289367676, 5.861593246459961, 6.115981101989746, 5.894783973693848, 5.971840858459473, 6.355977535247803, 6.2395453453063965, 5.93922233581543, 7.281783580780029, 7.0843987464904785, 5.448859214782715, 5.578529357910156, 6.083949089050293, 5.824679851531982, 5.5896430015563965, 3.5520405769348145, 6.662015438079834, 7.625463962554932, 8.766057014465332, 8.643043518066406, 7.985036849975586, 7.539222717285156, 5.9669108390808105, 6.248496055603027, 6.009612560272217, 6.720592975616455, 6.248939514160156, 4.993115425109863, 5.7151780128479, 6.135191917419434, 6.248310089111328, 5.993184566497803, 6.104955673217773, 7.044772624969482, 7.094884872436523, 6.826781272888184, 7.135672569274902, 7.124541759490967, 5.543144702911377, 5.536994457244873, 5.761457443237305, 5.743216037750244, 5.149410724639893, 3.2477104663848877, 6.639191627502441, 7.882691383361816, 9.007068634033203, 9.490873336791992, 8.327986717224121, 7.868467330932617, 6.841888427734375, 6.478886604309082, 6.8506903648376465, 7.546763896942139, 6.870861530303955, 5.6748738288879395, 5.834144592285156, 6.471714973449707, 6.115328311920166, 7.1087870597839355, 7.596017837524414, 7.250796318054199, 7.165897846221924, 6.650644779205322, 6.249284744262695, 7.13711404800415, 5.646180629730225, 5.783314228057861, 5.88626766204834, 6.737402439117432, 4.433974266052246, 3.4489924907684326, 5.340790271759033, 6.814132213592529, 8.898550033569336, 9.068994522094727, 8.40988826751709, 6.622282981872559, 6.760557174682617, 6.969709873199463, 6.643548488616943, 6.879033088684082, 6.908194541931152, 6.585840225219727, 7.567489147186279, 7.638038635253906, 6.9073381423950195, 7.667971611022949, 6.953526496887207, 6.7815704345703125, 7.344725131988525, 6.160312652587891, 6.1274495124816895, 5.070017337799072, 6.106521129608154, 4.594797611236572, 5.48606014251709, 5.429078102111816, 4.947328567504883, 3.1171040534973145, 5.552951812744141, 6.654005527496338, 7.691146373748779, 8.152817726135254, 7.85445499420166, 7.630724906921387, 7.032008171081543, 7.148881435394287, 8.155387878417969, 7.444799900054932, 7.555450916290283, 6.827401161193848, 6.35737419128418, 6.221503257751465, 6.829527854919434, 7.804560661315918, 7.821972846984863, 7.463062763214111, 7.556802272796631, 7.589656829833984, 5.608069896697998, 5.289414882659912, 5.7675700187683105, 5.418898582458496, 4.604909420013428, 6.278772354125977, 4.730870723724365, 2.807978630065918, 5.335770606994629, 6.194015026092529, 6.977275848388672, 7.73138952255249, 7.345678329467773, 7.314399719238281, 7.438418865203857, 7.250237464904785, 7.143182277679443, 6.336503028869629, 7.187468528747559, 7.1419172286987305, 7.242842674255371, 7.069225311279297, 7.044007301330566, 7.584834098815918, 7.700725078582764, 7.0612030029296875, 7.401741027832031, 6.246584892272949, 5.539930820465088, 4.555506706237793, 5.797543525695801, 5.266747951507568, 5.08932638168335, 5.509363174438477, 4.889194488525391, 2.617520809173584, 4.866511344909668, 5.261434555053711, 6.029825210571289, 6.249387741088867, 6.264054298400879, 5.883307456970215, 7.075305461883545, 6.866546154022217, 6.39708137512207, 7.235547065734863, 6.920173645019531, 7.013240337371826, 6.699314117431641, 6.326158046722412, 6.991702079772949, 8.525959014892578, 7.8984174728393555, 7.532545566558838, 6.892882347106934, 6.907245635986328, 5.319518566131592, 4.696969509124756, 4.723721981048584, 4.622824668884277, 5.2998528480529785, 5.265413761138916, 5.047624111175537, 2.5602848529815674, 4.173783302307129, 5.220560073852539, 6.520756721496582, 6.694314956665039, 6.3017802238464355, 6.108953475952148, 6.551589488983154, 6.721796989440918, 6.020662307739258, 5.822025775909424, 5.623591423034668, 6.68314266204834, 6.837486743927002, 7.606105804443359, 7.690301895141602, 7.869138717651367, 7.755599498748779, 7.016890048980713, 7.807568073272705, 7.366581439971924, 5.287583827972412, 4.936906337738037, 4.473492622375488, 4.666163921356201, 4.24417781829834, 5.715197563171387, 4.43166971206665, 3.288785457611084, 3.719125747680664, 4.100749492645264, 4.438264846801758, 3.8860597610473633, 5.756583213806152, 4.568116664886475, 5.158795356750488, 5.096014022827148, 4.831943988800049, 5.025664329528809, 4.631374359130859, 4.630411148071289, 5.587070941925049, 5.318414688110352, 6.032825469970703, 5.825864315032959, 6.333529472351074, 6.6306328773498535, 6.430455207824707, 5.425612926483154, 5.1630940437316895, 4.702463150024414, 3.929589033126831, 3.404538154602051, 4.116607666015625, 4.812665939331055, 3.3606772422790527, 2.936455011367798, 2.57403302192688, 3.0518813133239746, 3.153059482574463, 3.6973519325256348, 3.75327467918396, 3.8316216468811035, 3.420872449874878, 4.034299850463867, 3.023707628250122, 2.9698410034179688, 2.8870561122894287, 3.4746551513671875, 4.488380432128906, 4.292963981628418, 4.326427459716797, 4.705205917358398, 4.726603984832764, 4.446789741516113, 4.482458114624023, 4.454830169677734, 2.8947572708129883, 3.3807709217071533, 3.1987998485565186, 2.3933298587799072, 3.313917636871338, 3.7615771293640137, 2.8675613403320312, 1.7273114919662476, 2.614434242248535, 2.9891915321350098, 4.124444961547852, 4.890959739685059, 5.762336254119873, 5.580539703369141, 5.526269912719727, 5.249543190002441, 5.631588935852051, 5.5652313232421875, 5.383151531219482, 4.98008918762207, 4.724649906158447, 5.7384819984436035, 5.308276176452637, 4.641787528991699, 4.462037086486816, 3.9513542652130127, 3.53891658782959, 4.170851230621338, 3.83380126953125, 4.241904258728027, 4.00661563873291, 4.617609977722168, 4.631767272949219, 4.896625995635986, 3.0294349193573, 2.966604709625244, 3.944089889526367, 4.710902690887451, 5.346867561340332, 5.741070747375488, 5.493183612823486, 6.637784481048584, 6.967920303344727, 7.749423027038574, 6.987705707550049, 6.346141338348389, 5.992851257324219, 4.999004364013672, 4.965282917022705, 5.603626728057861, 6.036859512329102, 6.290500640869141, 5.714107990264893, 5.046786308288574, 4.213855743408203, 4.854815483093262, 4.725543975830078, 6.00097131729126, 6.107832431793213, 6.388427257537842, 5.993316173553467, 7.004231929779053, 4.5351667404174805, 3.542357921600342, 4.6779608726501465, 5.3256120681762695, 7.151734828948975, 6.872252941131592, 7.956999778747559, 7.353435516357422, 7.699067115783691, 7.649650573730469, 7.765058517456055, 6.592264175415039, 6.19968843460083, 5.868188858032227, 6.792656898498535, 7.411664009094238, 7.710442543029785, 6.842920303344727, 6.623928546905518, 5.0107645988464355, 6.121346473693848, 6.140572547912598, 6.6478800773620605, 7.191738128662109, 8.150762557983398, 7.019184589385986, 6.85001277923584, 7.387073516845703, 5.624795913696289, 4.244716644287109, 5.16191291809082, 6.885376930236816, 7.172828197479248, 7.064208507537842, 6.738560199737549, 7.956536769866943, 7.6350507736206055, 7.121100902557373, 6.418033123016357, 5.745319843292236, 6.839874744415283, 6.309837341308594, 6.002246379852295, 6.09760856628418, 6.769949436187744, 6.709463596343994, 7.095081806182861, 6.770543575286865, 6.542385101318359, 5.903101921081543, 4.889061450958252, 6.930679798126221, 7.2358293533325195, 6.972762107849121, 6.353959083557129, 8.288373947143555, 6.42124080657959, 4.980783462524414, 4.080529689788818, 5.18499231338501, 7.791533946990967, 7.880219459533691, 7.925038814544678, 7.371220111846924, 7.6303558349609375, 7.396859645843506, 7.415466785430908, 6.330089092254639, 6.884704113006592, 6.682150840759277, 6.661623954772949, 7.013833999633789, 8.028949737548828, 8.57962703704834, 8.3343505859375, 7.695432662963867, 7.3610429763793945, 7.136538028717041, 6.152804374694824, 5.9429144859313965, 7.975133419036865, 6.862707614898682, 6.627638816833496, 6.343132495880127, 5.825954437255859, 4.220617771148682, 4.8556671142578125, 6.078427791595459, 7.366325855255127, 6.955105304718018, 7.311768054962158, 7.915329933166504, 7.645061016082764, 6.954803943634033, 6.522015571594238, 5.719749450683594, 5.576803684234619, 5.036468505859375, 5.962577819824219, 6.872183799743652, 8.117229461669922, 7.338357448577881, 7.942868232727051, 6.129079818725586, 6.193260192871094, 6.785473823547363, 6.449768543243408, 6.541970252990723, 7.345400810241699, 8.00663948059082, 7.174088001251221, 6.909933090209961, 5.690535545349121, 4.2449517250061035, 4.702579975128174, 6.233633995056152, 8.29648494720459, 8.497600555419922, 7.8322978019714355, 8.302034378051758, 8.185541152954102, 6.91323709487915, 5.604305744171143, 5.006257057189941, 6.105903625488281, 6.386781215667725, 6.967251300811768, 7.262567520141602, 7.987645626068115, 8.24449348449707, 6.945749282836914, 6.876195430755615, 6.552849292755127, 8.14262866973877, 6.998745918273926, 6.524806499481201, 6.824967384338379, 6.894550800323486, 6.394043445587158, 6.365600109100342, 5.7465925216674805, 4.340541839599609, 4.815845489501953, 5.882443904876709, 6.890608787536621, 7.8152971267700195, 8.546396255493164, 8.227380752563477, 7.822051525115967, 7.378722190856934, 6.557688236236572, 6.667679786682129, 7.03805685043335, 7.4490180015563965, 7.591406345367432, 7.695619583129883, 8.950821876525879, 8.891677856445312, 8.034318923950195, 7.134735107421875, 7.679702281951904, 7.5867085456848145, 6.355910778045654, 6.65500020980835, 6.857203006744385, 7.332289695739746, 6.777294635772705, 7.051161289215088, 6.161504745483398, 4.3289570808410645, 4.588629722595215, 5.942449569702148, 7.801783561706543, 8.646013259887695, 9.275118827819824, 8.361994743347168, 8.203655242919922, 7.806499004364014, 7.836731910705566, 6.8820085525512695, 8.415566444396973, 7.271696090698242, 8.276664733886719, 7.650938510894775, 9.04782485961914, 9.432869911193848, 8.782745361328125, 8.196168899536133, 8.317612648010254, 8.094780921936035, 6.735171794891357, 7.142716407775879, 7.200594902038574, 6.018339157104492, 5.950747489929199, 6.900176048278809, 5.880771636962891, 3.5434913635253906, 4.496057510375977, 5.690234661102295, 7.177297115325928, 8.635503768920898, 8.497203826904297, 8.189596176147461, 8.212398529052734, 8.875003814697266, 7.993839263916016, 6.791961669921875, 7.930228233337402, 8.64611530303955, 8.58043098449707, 8.1815824508667, 8.846378326416016, 7.636018753051758, 7.6888747215271, 6.741626739501953, 7.718379020690918, 7.333310127258301, 5.858546257019043, 6.37459135055542, 7.380970478057861, 6.536870002746582, 5.881573677062988, 6.979404449462891, 5.747885227203369, 3.6154987812042236, 4.675286293029785, 6.020504951477051, 7.558282375335693, 8.402071952819824, 9.511449813842773, 8.764935493469238, 7.734723091125488, 7.45262336730957, 8.054035186767578, 6.950573921203613, 7.3430938720703125, 8.436214447021484, 8.514871597290039, 8.538497924804688, 8.946734428405762, 8.01435661315918, 7.701340198516846, 7.710596084594727, 8.341985702514648, 8.41200065612793, 7.200533390045166, 6.453247547149658, 7.41680383682251, 6.310251712799072, 6.179171562194824, 6.4403581619262695, 5.917792320251465, 3.565135955810547, 4.057899475097656, 5.824016571044922, 7.018521785736084, 7.250749111175537, 7.514420509338379, 8.163982391357422, 7.97511100769043, 7.953409194946289, 8.502762794494629, 7.820037841796875, 8.018997192382812, 7.879302978515625, 8.175830841064453, 7.878677845001221, 8.79476261138916, 7.829631328582764, 7.899580001831055, 7.871969699859619, 7.972635269165039, 7.77032995223999, 6.7921648025512695, 6.953495979309082, 7.749549865722656, 7.225930690765381, 6.468138694763184, 6.684432506561279, 5.640321254730225, 3.901921510696411, 5.127197265625, 7.152456760406494, 8.77160930633545, 8.51480484008789, 8.366890907287598, 8.882430076599121, 7.616214752197266, 8.073835372924805, 7.734094142913818, 7.892618656158447, 7.356937408447266, 8.720287322998047, 8.555213928222656, 8.301788330078125, 8.370941162109375, 7.368671894073486, 7.5513739585876465, 7.888156890869141, 7.64923620223999, 8.158658981323242, 7.608815670013428, 6.9757843017578125, 6.754199028015137, 6.417651176452637, 6.118890762329102, 6.380253314971924, 5.72349739074707, 3.9105606079101562, 4.247251987457275, 5.539377212524414, 7.227059841156006, 6.918393611907959, 7.722711086273193, 8.115945816040039, 8.251619338989258, 7.160393238067627, 7.235202789306641, 7.019412040710449, 7.22022819519043, 7.825136661529541, 7.861072540283203, 7.30020809173584, 8.10053825378418, 9.242393493652344, 8.82568359375, 7.945283889770508, 6.524604320526123, 6.7841477394104, 6.950133800506592, 7.563234806060791, 6.434023857116699, 7.057542324066162, 7.053357124328613, 7.97462797164917, 5.876636505126953, 3.8916549682617188, 4.897480010986328, 5.804964065551758, 7.4325971603393555, 7.786256313323975, 7.339526176452637, 7.982000827789307, 7.6881608963012695, 7.120793342590332, 5.960864543914795, 6.461432456970215, 7.096927642822266, 7.495683670043945, 7.787332057952881, 8.04965591430664, 7.396576404571533, 7.4140167236328125, 6.96652889251709, 6.31650972366333, 6.7776408195495605, 7.144497871398926, 7.376039505004883, 6.704712867736816, 6.829233646392822, 7.221975803375244, 7.58153772354126, 7.424394130706787, 6.055023670196533, 4.204169750213623, 5.600923538208008, 5.119078159332275, 7.130394458770752, 6.656804084777832, 6.730498313903809, 6.156063556671143, 6.648664951324463, 6.785174369812012, 7.271544933319092, 7.426427841186523, 7.706991195678711, 6.269782066345215, 5.923100471496582, 7.043399810791016, 6.653618812561035, 6.19030237197876, 6.613569736480713, 6.422754287719727, 6.292022705078125, 6.273629665374756, 6.654544353485107, 7.218823432922363, 7.7668023109436035, 7.606898784637451, 6.991318702697754, 7.2215776443481445, 6.146843433380127, 4.283865928649902, 6.407140731811523, 7.483636856079102, 8.800979614257812, 8.931157112121582, 7.379928112030029, 7.225212574005127, 7.436000823974609, 6.5371198654174805, 6.297309398651123, 5.770882606506348, 6.460140705108643, 6.45997428894043, 6.9928879737854, 7.528080940246582, 6.406914234161377, 5.691700458526611, 5.689873218536377, 6.503042697906494, 6.928707122802734, 6.866245269775391, 6.66543436050415, 7.089865684509277, 7.153695106506348, 6.873051643371582, 6.3080339431762695, 6.736788749694824, 6.318082809448242, 4.8881988525390625, 6.058814525604248, 6.743002891540527, 8.294157028198242, 8.03457260131836, 7.4560112953186035, 6.479605674743652, 6.494052886962891, 5.805630683898926, 6.261044025421143, 6.1373467445373535, 5.705608367919922, 5.731037139892578, 6.954045295715332, 7.874228477478027, 7.008672714233398, 6.176257133483887, 6.6203131675720215, 7.573653221130371, 7.160436153411865, 5.457625389099121, 6.815317630767822, 6.670887470245361, 6.989815711975098, 5.774380683898926, 7.225210189819336, 7.331511497497559, 6.247379779815674, 4.104476451873779, 6.103755950927734, 7.740779876708984, 9.2048978805542, 8.370346069335938, 7.086154937744141, 6.502265930175781, 6.839859485626221, 6.327090740203857, 6.1283345222473145, 6.2529778480529785, 6.999377250671387, 7.024665355682373, 6.808631420135498, 6.2190141677856445, 5.803797245025635, 6.0367960929870605, 6.520930767059326, 6.9798970222473145, 6.451720237731934, 6.170968532562256, 7.603582382202148, 7.515888690948486, 6.093364715576172, 5.473690509796143, 6.751436710357666, 6.297408580780029, 5.578054904937744, 4.373824596405029, 6.419831275939941, 7.587770938873291, 8.860039710998535, 8.830392837524414, 8.277388572692871, 7.56350040435791, 7.035324573516846, 7.269022464752197, 6.847195625305176, 6.742249011993408, 6.113762855529785, 5.530727863311768, 5.961730480194092, 6.514145851135254, 6.003728866577148, 5.78247594833374, 6.490879535675049, 6.917763710021973, 7.178517818450928, 6.908339023590088, 7.75515079498291, 7.503934383392334, 6.427497386932373, 5.477074146270752, 6.631338119506836, 6.058499336242676, 5.337575912475586, 4.214560508728027, 6.398880958557129, 7.987367153167725, 9.4248685836792, 9.981819152832031, 8.931146621704102, 7.926571846008301, 6.889291286468506, 6.542474269866943, 7.037546157836914, 7.837653160095215, 7.504391670227051, 7.016471862792969, 6.129392147064209, 6.520581245422363, 6.339041233062744, 7.167365074157715, 7.8102946281433105, 6.980958461761475, 7.311732292175293, 7.552126407623291, 6.997041702270508, 7.00006628036499, 6.27816915512085, 6.127434253692627, 6.050349712371826, 6.708664894104004, 5.632558822631836, 4.596296310424805, 5.532526016235352, 6.470886707305908, 8.42531967163086, 8.980091094970703, 8.976785659790039, 7.887604713439941, 6.987522125244141, 6.752679824829102, 6.853119850158691, 7.680868625640869, 7.139748573303223, 6.8949809074401855, 7.276330947875977, 7.999478816986084, 7.809974670410156, 8.327352523803711, 7.83154821395874, 6.965827941894531, 7.944753646850586, 6.858835697174072, 6.127941131591797, 5.216413974761963, 6.459040641784668, 5.115360736846924, 5.112383842468262, 5.259352684020996, 5.621151924133301, 3.8191561698913574, 5.268821716308594, 6.838716983795166, 8.327028274536133, 8.495105743408203, 8.17414665222168, 8.036734580993652, 7.580471038818359, 7.676599502563477, 7.718498706817627, 7.815074920654297, 7.8839945793151855, 7.790329933166504, 6.746696472167969, 6.2085442543029785, 7.073089122772217, 8.356952667236328, 8.255402565002441, 7.699714660644531, 8.055915832519531, 7.993237495422363, 6.336834907531738, 6.166241645812988, 6.3549017906188965, 6.08803653717041, 4.724824905395508, 6.066217422485352, 5.143645286560059, 3.5589547157287598, 5.071242332458496, 6.457111835479736, 7.927648067474365, 8.275131225585938, 7.526533603668213, 7.118226051330566, 7.830737113952637, 7.842658996582031, 7.167766571044922, 6.703363418579102, 7.298923492431641, 7.615852355957031, 7.418509006500244, 7.0031514167785645, 7.3713884353637695, 7.68094539642334, 7.879974842071533, 7.330709934234619, 8.018099784851074, 7.158792495727539, 6.384706497192383, 4.796243190765381, 5.96945858001709, 5.410003662109375, 5.328241348266602, 5.749305725097656, 5.577610015869141, 3.7062671184539795, 4.845120429992676, 5.696303844451904, 6.5353546142578125, 6.235476970672607, 6.258926868438721, 6.10473108291626, 7.137846946716309, 7.257777690887451, 6.724053859710693, 7.167255878448486, 7.4386091232299805, 6.965141296386719, 6.6005120277404785, 6.286368370056152, 7.329751014709473, 8.498457908630371, 8.110645294189453, 8.262605667114258, 7.465944766998291, 6.769542694091797, 5.690448760986328, 5.215908050537109, 5.159088134765625, 4.482058525085449, 5.904016017913818, 5.774893283843994, 5.248011112213135, 3.6205265522003174, 4.00400447845459, 4.802823066711426, 6.478804588317871, 7.5584869384765625, 6.918185234069824, 6.3961052894592285, 6.446966648101807, 7.050360202789307, 6.722598075866699, 5.844288349151611, 6.104187488555908, 6.861940383911133, 7.535167694091797, 7.864914417266846, 8.010587692260742, 8.24247932434082, 7.950375556945801, 7.287540912628174, 7.562559127807617, 7.32913064956665, 6.106637954711914, 5.9624152183532715, 5.407158851623535, 4.622440338134766, 5.064780235290527, 5.600051403045654, 4.561710357666016, 3.955345630645752, 4.173172950744629, 4.205171585083008, 4.708950996398926, 3.836667537689209, 5.481082439422607, 5.221999645233154, 5.0278730392456055, 4.777667045593262, 5.4527974128723145, 5.7215728759765625, 5.165627956390381, 4.173734664916992, 5.335982799530029, 5.682817459106445, 5.635283946990967, 5.786245822906494, 6.454205513000488, 6.661151885986328, 6.333725452423096, 5.923879623413086, 5.558763027191162, 4.814148902893066, 4.043917179107666, 3.297288179397583, 4.126839637756348, 4.8109660148620605, 3.819718837738037, 2.9628164768218994, 3.1275432109832764, 3.4897162914276123, 3.6296255588531494, 3.4395482540130615, 3.6183815002441406, 3.9781060218811035, 3.808969497680664, 4.184079170227051, 3.404972791671753, 2.9375505447387695, 2.871168851852417, 3.3747825622558594, 4.171994686126709, 4.700026512145996, 4.612977981567383, 4.644193649291992, 4.481192588806152, 4.8887410163879395, 4.915256023406982, 4.349445343017578, 2.9722909927368164, 3.1604137420654297, 2.9995758533477783, 2.8292508125305176, 3.191103219985962, 3.841489791870117, 3.2520217895507812, 2.186692714691162] +41248 diff --git a/mlir-assigner/tests/Ops/Div/DivSimple.json b/mlir-assigner/tests/Ops/Onnx/Div/DivSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Div/DivSimple.json rename to mlir-assigner/tests/Ops/Onnx/Div/DivSimple.json diff --git a/mlir-assigner/tests/Ops/Div/DivSimple.mlir b/mlir-assigner/tests/Ops/Onnx/Div/DivSimple.mlir similarity index 100% rename from mlir-assigner/tests/Ops/Div/DivSimple.mlir rename to mlir-assigner/tests/Ops/Onnx/Div/DivSimple.mlir diff --git a/mlir-assigner/tests/Ops/Div/DivSimple.res b/mlir-assigner/tests/Ops/Onnx/Div/DivSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Div/DivSimple.res rename to mlir-assigner/tests/Ops/Onnx/Div/DivSimple.res diff --git a/mlir-assigner/tests/Ops/Floor/FloorSimple.json b/mlir-assigner/tests/Ops/Onnx/Floor/FloorSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Floor/FloorSimple.json rename to mlir-assigner/tests/Ops/Onnx/Floor/FloorSimple.json diff --git a/mlir-assigner/tests/Ops/Floor/FloorSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Floor/FloorSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Floor/FloorSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Floor/FloorSimple.onnx diff --git a/mlir-assigner/tests/Ops/Floor/FloorSimple.res b/mlir-assigner/tests/Ops/Onnx/Floor/FloorSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Floor/FloorSimple.res rename to mlir-assigner/tests/Ops/Onnx/Floor/FloorSimple.res diff --git a/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.json b/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.json new file mode 100644 index 0000000..1c4f007 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.631256103515625, 0.8214569091796875, 0.0182037353515625, 0.4559783935546875, 0.7693634033203125, 0.0552215576171875, 0.4049835205078125, 0.5970458984375, 0.82586669921875, 0.8535308837890625, 0.9954071044921875, 0.1508331298828125, 0.4889068603515625, 0.44818115234375, 0.9499359130859375, 0.99310302734375], "dims": [1, 16], "type": "f32"}}, {"memref": {"data": [0.2346343994140625, 0.736358642578125, 0.5477447509765625, 0.0065765380859375, 0.1519775390625, 0.1787567138671875, 0.3726806640625, 0.1644134521484375, 0.2892913818359375, 0.39190673828125, 0.4053955078125, 0.8814544677734375, 0.6829986572265625, 0.1031646728515625, 0.0595550537109375, 0.5740203857421875, 0.1974029541015625, 0.2866668701171875, 0.6319122314453125, 0.6095123291015625, 0.1885528564453125, 0.876129150390625, 0.6735076904296875, 0.4219970703125, 0.2471466064453125, 0.6376190185546875, 0.1365966796875, 0.537841796875, 0.813140869140625, 0.3629608154296875, 0.1995849609375, 0.443756103515625, 0.8561553955078125, 0.9093475341796875, 0.0190887451171875, 0.3991546630859375, 0.021759033203125, 0.4452972412109375, 0.23553466796875, 0.967529296875, 0.794677734375, 0.153533935546875, 0.512054443359375, 0.6212005615234375, 0.6952362060546875, 0.8849334716796875, 0.7907562255859375, 0.6225738525390625, 0.389678955078125, 0.81201171875, 0.8691864013671875, 0.9375152587890625, 0.171356201171875, 0.686248779296875, 0.712554931640625, 0.561187744140625, 0.5719146728515625, 0.5887603759765625, 0.8431396484375, 0.1366424560546875, 0.9016265869140625, 0.2467803955078125, 0.6553497314453125, 0.393524169921875, 0.905029296875, 0.0960845947265625, 0.374176025390625, 0.10028076171875, 0.642608642578125, 0.5686187744140625, 0.9467010498046875, 0.5773773193359375, 0.656707763671875, 0.194488525390625, 0.30377197265625, 0.5901641845703125, 0.5800628662109375, 0.622772216796875, 0.6387176513671875, 0.1309967041015625, 0.06890869140625, 0.7167816162109375, 0.8921661376953125, 0.4924774169921875, 0.8972320556640625, 0.5412139892578125, 0.707763671875, 0.4476318359375, 0.836669921875, 0.1751556396484375, 0.7440948486328125, 0.808135986328125, 0.0914154052734375, 0.65777587890625, 0.1314239501953125, 0.2581787109375, 0.214141845703125, 0.3429107666015625, 0.070159912109375, 0.439361572265625, 0.227691650390625, 0.0767364501953125, 0.05670166015625, 0.031982421875, 0.44842529296875, 0.2675018310546875, 0.786773681640625, 0.74456787109375, 0.695220947265625, 0.608673095703125, 0.9850616455078125, 0.5949859619140625, 0.8213043212890625, 0.6706390380859375, 0.07366943359375, 0.6751861572265625, 0.36041259765625, 0.7677001953125, 0.348602294921875, 0.1705780029296875, 0.078948974609375, 0.6363525390625, 0.57733154296875, 0.376007080078125, 0.7437286376953125, 0.4837799072265625, 0.7515411376953125, 0.2720184326171875, 0.867706298828125, 0.434783935546875, 0.9911041259765625, 0.3517303466796875, 0.1483154296875, 0.6014251708984375, 0.101165771484375, 0.1755828857421875, 0.9423675537109375, 0.8550872802734375, 0.266448974609375, 0.261505126953125, 0.8538055419921875, 0.1282806396484375, 0.0194549560546875, 0.2297821044921875, 0.8485107421875, 0.22918701171875, 0.3061676025390625, 0.743316650390625, 0.936798095703125, 0.773345947265625, 0.8059844970703125, 0.6662750244140625, 0.92803955078125, 0.3299102783203125, 0.4249267578125, 0.008087158203125, 0.55181884765625, 0.0527801513671875, 0.7356719970703125, 0.7597198486328125, 0.80792236328125, 0.4022979736328125, 0.6629638671875, 0.3065643310546875, 0.0457916259765625, 0.7858123779296875, 0.854766845703125, 0.3975982666015625, 0.0672454833984375, 0.0983734130859375, 0.758026123046875, 0.731201171875, 0.4390106201171875, 0.1344146728515625, 0.8310546875, 0.4715576171875, 0.7649993896484375, 0.5367584228515625, 0.3210906982421875, 0.433563232421875, 0.1349029541015625, 0.8632049560546875, 0.862762451171875, 0.1958770751953125, 0.673858642578125, 0.7460784912109375, 0.4752349853515625, 0.4359130859375, 0.22528076171875, 0.52618408203125, 0.60565185546875, 0.8876953125], "dims": [12, 16], "type": "f32"}}, {"memref": {"data": [0.044342041015625, 0.5180511474609375, 0.825408935546875, 0.9205169677734375, 0.6876068115234375, 0.899505615234375, 0.79254150390625, 0.9268341064453125, 0.1081390380859375, 0.7812347412109375, 0.31597900390625, 0.18328857421875], "dims": [12], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bed1cc3856f3f5e23ea527abd8269bd3df7f8abc GIT binary patch literal 195 zcmdKqvJh*2X-Ryd5{r9kZmt$T7i(fpK}Mn|14D!T0!BtH zJ}#D|)Di@rmy4~WC^4_tNrG_!Ba;vpNLO%XZb43Jlo-TtAwDi14n`pkE+!5}AQpg% lCn1URfW?KN4&dVA0IFvJit!|gb3vSgq!?rfj}w!C2moS{Br*U1 literal 0 HcmV?d00001 diff --git a/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.res b/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.res new file mode 100644 index 0000000..23b6ee0 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Gemm/GemmSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x12xf32>[3.302902936935425, 4.041675567626953, 6.506291389465332, 6.469696998596191, 5.043590545654297, 5.47047233581543, 5.265944480895996, 5.672338485717773, 4.018970012664795, 6.556274890899658, 4.50745153427124, 5.46346378326416] +222 diff --git a/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.json b/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.json new file mode 100644 index 0000000..598de04 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.6576385498046875, 0.510528564453125, 0.25311279296875, 0.8009185791015625, 0.4760589599609375, 0.2910308837890625, 0.0444488525390625, 0.243896484375, 0.52838134765625, 0.3069915771484375, 0.6809234619140625, 0.0027618408203125, 0.6162109375, 0.4929962158203125, 0.4381256103515625, 0.158905029296875, 0.735748291015625, 0.3079833984375, 0.3032989501953125, 0.86383056640625, 0.266082763671875, 0.26849365234375, 0.3443450927734375, 0.1947479248046875, 0.8450927734375, 0.4666595458984375, 0.7932891845703125, 0.3919830322265625, 0.5960845947265625, 0.37255859375, 0.1177215576171875, 0.0899505615234375, 0.7592010498046875, 0.831390380859375, 0.6484527587890625, 0.748748779296875, 0.703155517578125, 0.0173187255859375, 0.6822662353515625, 0.432708740234375, 0.8835906982421875, 0.231536865234375, 0.3537750244140625, 0.158966064453125, 0.6984710693359375, 0.6749267578125, 0.5343475341796875, 0.0703277587890625, 0.8297271728515625, 0.7232513427734375, 0.8857574462890625, 0.19677734375, 0.7905731201171875, 0.016693115234375, 0.20361328125, 0.299407958984375, 0.6019744873046875, 0.425628662109375, 0.64068603515625, 0.0473785400390625, 0.913604736328125, 0.327850341796875, 0.8130340576171875, 0.9049530029296875, 0.427276611328125, 0.675201416015625, 0.7516937255859375, 0.2373504638671875, 0.222900390625, 0.188568115234375, 0.546417236328125, 0.9794769287109375, 0.223968505859375, 0.534271240234375, 0.67999267578125, 0.279937744140625, 0.108734130859375, 0.3944549560546875, 0.4259185791015625, 0.87261962890625, 0.3818817138671875, 0.3512725830078125, 0.9425811767578125, 0.077392578125, 0.74383544921875, 0.1772308349609375, 0.9652862548828125, 0.3693695068359375, 0.037200927734375, 0.6180419921875, 0.0322418212890625, 0.8612213134765625, 0.8741607666015625, 0.0742645263671875, 0.7357330322265625, 0.927978515625, 0.6392669677734375, 0.618804931640625, 0.6002197265625, 0.9385223388671875, 0.777801513671875, 0.8184814453125, 0.2829437255859375, 0.4142913818359375, 0.0644378662109375, 0.656951904296875, 0.20245361328125, 0.533477783203125, 0.7345123291015625, 0.811431884765625, 0.4319915771484375, 0.80963134765625, 0.413238525390625, 0.08599853515625, 0.182403564453125, 0.681732177734375, 0.49822998046875, 0.2364349365234375, 0.89508056640625, 0.5992279052734375, 0.995635986328125, 0.1920928955078125, 0.243499755859375, 0.5532684326171875, 0.5052490234375, 0.5732574462890625, 0.6492156982421875, 0.7350616455078125, 0.970458984375, 0.041351318359375, 0.47967529296875, 0.48370361328125, 0.5709075927734375, 0.472259521484375, 0.5202484130859375, 0.1687164306640625, 0.3892364501953125, 0.6557159423828125, 0.9119720458984375, 0.515533447265625, 0.1009674072265625, 0.2975921630859375, 0.7875823974609375, 0.3484649658203125], "dims": [12, 12], "type": "f32"}}, {"memref": {"data": [0.743072509765625, 0.39599609375, 0.80938720703125, 0.8567657470703125, 0.852630615234375, 0.5102081298828125, 0.65087890625, 0.659454345703125, 0.16290283203125, 0.248199462890625, 0.8461761474609375, 0.3910369873046875, 0.1853179931640625, 0.0438232421875, 0.3955535888671875, 0.680938720703125, 0.473419189453125, 0.942962646484375, 0.7528533935546875, 0.3736572265625, 0.8406982421875, 0.91058349609375, 0.6400146484375, 0.04730224609375, 0.4764251708984375, 0.85809326171875, 0.984283447265625, 0.92425537109375, 0.2535552978515625, 0.8483734130859375, 0.42626953125, 0.5673370361328125, 0.524688720703125, 0.2063140869140625, 0.1614532470703125, 0.50665283203125, 0.336151123046875, 0.7968597412109375, 0.0685577392578125, 0.7176513671875, 0.0344696044921875, 0.5784759521484375, 0.3590545654296875, 0.3427276611328125, 0.632720947265625, 0.2486419677734375, 0.4136199951171875, 0.4209136962890625, 0.1373748779296875, 0.4140625, 0.5597686767578125, 0.5272674560546875, 0.6211700439453125, 0.2149810791015625, 0.6658782958984375, 0.7441558837890625, 0.5956268310546875, 0.7669830322265625, 0.6188507080078125, 0.021697998046875, 0.3161468505859375, 0.294403076171875, 0.103302001953125, 0.7448577880859375, 0.2237548828125, 0.527008056640625, 0.296875, 0.7244873046875, 0.320526123046875, 0.466094970703125, 0.964202880859375, 0.82666015625, 0.2686920166015625, 0.7693328857421875, 0.9189910888671875, 0.7634429931640625, 0.4582672119140625, 0.7712860107421875, 0.5476226806640625, 0.47625732421875, 0.5324554443359375, 0.5861358642578125, 0.933135986328125, 0.2050933837890625, 0.9805145263671875, 0.35345458984375, 0.0808258056640625, 0.1371307373046875, 0.5778656005859375, 0.3943634033203125, 0.3404541015625, 0.6232757568359375, 0.367218017578125, 0.520233154296875, 0.973114013671875, 0.7483367919921875, 0.274322509765625, 0.6533966064453125, 0.5914306640625, 0.40496826171875, 0.175933837890625, 0.33465576171875, 0.334197998046875, 0.917266845703125, 0.5391998291015625, 0.04986572265625, 0.042266845703125, 0.95660400390625, 0.21795654296875, 0.1995697021484375, 0.4460601806640625, 0.931884765625, 0.258636474609375, 0.9110107421875, 0.3674774169921875, 0.7227020263671875, 0.06689453125, 0.362274169921875, 0.0475006103515625, 0.1265716552734375, 0.97979736328125, 0.0724029541015625, 0.3392181396484375, 0.727142333984375, 0.4590301513671875, 0.2630767822265625, 0.2296295166015625, 0.3291168212890625, 0.8187103271484375, 0.0195159912109375, 0.8697509765625, 0.00311279296875, 0.812103271484375, 0.6115570068359375, 0.6578826904296875, 0.661285400390625, 0.5687255859375, 0.063873291015625, 0.421417236328125, 0.15472412109375, 0.3677215576171875, 0.8945770263671875, 0.5994415283203125, 0.1821136474609375], "dims": [12, 12], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.onnx b/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.onnx new file mode 100644 index 0000000..3f5d99b --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.onnx @@ -0,0 +1,16 @@ + :t + +in_a +in_bout_a"MatMul MatMulSimpleZ +in_a +  + + Z +in_b +  + + b +out_a +  + + B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.res b/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.res new file mode 100644 index 0000000..f808ace --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/MatMul/MatMulSimple.res @@ -0,0 +1,3 @@ +Result: +memref<12x12xf32>[2.262864112854004, 1.9989091157913208, 2.0776140689849854, 3.251981735229492, 1.9028385877609253, 2.516984224319458, 2.165558338165283, 2.711897611618042, 2.529895544052124, 1.686503291130066, 2.740208625793457, 1.736144781112671, 2.5653905868530273, 2.073651075363159, 2.4501700401306152, 3.087108612060547, 2.424546241760254, 2.5746402740478516, 2.4063186645507812, 2.9286670684814453, 2.3758857250213623, 2.358257293701172, 3.2895469665527344, 1.8574044704437256, 3.176539421081543, 2.9938669204711914, 3.6963226795196533, 4.799196720123291, 2.7877795696258545, 3.4516265392303467, 3.0065717697143555, 3.7682037353515625, 3.0356078147888184, 2.6639628410339355, 3.313873291015625, 2.3016812801361084, 2.361093759536743, 2.644618511199951, 3.075356960296631, 3.8324575424194336, 2.2330148220062256, 2.8454232215881348, 2.4556474685668945, 3.413588285446167, 2.4932172298431396, 1.8670008182525635, 2.7185685634613037, 1.9737334251403809, 2.6250109672546387, 2.4254982471466064, 3.29294753074646, 3.9266560077667236, 2.5793960094451904, 3.185274362564087, 2.8022730350494385, 3.3493337631225586, 2.9220685958862305, 2.2245330810546875, 3.007384777069092, 1.8273807764053345, 3.5711023807525635, 3.654669761657715, 3.7960281372070312, 5.052552223205566, 2.9655067920684814, 3.5622901916503906, 3.1724138259887695, 3.4815921783447266, 3.3222784996032715, 3.0908451080322266, 4.41709041595459, 2.481984853744507, 2.9609122276306152, 2.151127576828003, 2.3978681564331055, 3.3996164798736572, 2.1159327030181885, 2.9615108966827393, 2.1639821529388428, 2.8688278198242188, 2.787543773651123, 1.956775188446045, 3.3502862453460693, 2.0708072185516357, 3.9536962509155273, 3.15830397605896, 3.241708278656006, 4.109763145446777, 2.687941074371338, 2.8904659748077393, 2.560232162475586, 3.499798059463501, 2.983938217163086, 2.3355302810668945, 3.775214672088623, 3.1235156059265137, 2.831463098526001, 2.9844348430633545, 2.9815542697906494, 4.628235816955566, 2.6354899406433105, 3.6493537425994873, 3.065948247909546, 3.5627896785736084, 3.002145767211914, 3.161149263381958, 3.889580726623535, 2.2825067043304443, 3.527395009994507, 2.7239859104156494, 2.9570908546447754, 4.146038055419922, 2.8018012046813965, 3.1743226051330566, 2.9079527854919434, 3.2069222927093506, 3.3995444774627686, 2.694242477416992, 3.8877334594726562, 2.131340265274048, 3.361272096633911, 3.1626458168029785, 3.2308576107025146, 3.995973825454712, 2.861769199371338, 2.9366204738616943, 2.8610165119171143, 3.7675259113311768, 2.9984211921691895, 2.5329225063323975, 4.170230865478516, 2.945901870727539, 2.974839687347412, 2.4611704349517822, 3.026780366897583, 3.994546413421631, 2.606851816177368, 3.145864248275757, 2.609062910079956, 3.0471010208129883, 2.833949327468872, 2.5678598880767822, 4.0771989822387695, 1.9036816358566284] +432 diff --git a/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.json b/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.json new file mode 100644 index 0000000..d06d6c7 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.1179351806640625, 0.069061279296875, 0.6517181396484375, 0.5564727783203125, 0.9555511474609375, 0.8222808837890625, 0.89947509765625, 0.9942474365234375, 0.61114501953125, 0.3707733154296875, 0.161773681640625, 0.255157470703125, 0.7034759521484375, 0.521759033203125, 0.352752685546875, 0.8530120849609375, 0.047271728515625, 0.9615478515625, 0.848541259765625, 0.615234375, 0.8645477294921875, 0.6813812255859375, 0.433380126953125, 0.004058837890625, 0.4780731201171875, 0.119964599609375, 0.5194854736328125, 0.11004638671875, 0.41497802734375, 0.1244659423828125, 0.2153778076171875, 0.8077850341796875, 0.286773681640625, 0.946563720703125, 0.040740966796875, 0.8836822509765625, 0.0031890869140625, 0.8123626708984375, 0.8960113525390625, 0.6949615478515625, 0.0003204345703125, 0.38653564453125, 0.568756103515625, 0.65447998046875, 0.9936370849609375, 0.38922119140625, 0.752197265625, 0.9808349609375, 0.6057281494140625, 0.903289794921875, 0.7040252685546875, 0.696685791015625, 0.06561279296875, 0.041961669921875, 0.274810791015625, 0.2767181396484375, 0.6713409423828125, 0.9480743408203125, 0.291748046875, 0.743408203125, 0.7270355224609375, 0.2284698486328125, 0.655517578125, 0.7549591064453125, 0.282073974609375, 0.686187744140625, 0.3262939453125, 0.883270263671875, 0.502716064453125, 0.6629638671875, 0.9479217529296875, 0.713165283203125, 0.0402679443359375, 0.9380645751953125, 0.5033721923828125, 0.274627685546875, 0.927337646484375, 0.54193115234375, 0.6904296875, 0.1185760498046875, 0.2317352294921875, 0.0453643798828125, 0.2924346923828125, 0.8991241455078125, 0.692047119140625, 0.3867340087890625, 0.198089599609375, 0.4792327880859375, 0.2073516845703125, 0.7155914306640625, 0.8521881103515625, 0.7642822265625, 0.619384765625, 0.668426513671875, 0.4605712890625, 0.6331634521484375, 0.461700439453125, 0.8399810791015625, 0.7120361328125, 0.07275390625, 0.0567779541015625, 0.167327880859375, 0.94097900390625, 0.418975830078125, 0.6149749755859375, 0.3373260498046875, 0.745269775390625, 0.118194580078125, 0.775482177734375, 0.7880401611328125, 0.0482330322265625, 0.7364501953125, 0.7056884765625, 0.7095794677734375, 0.8368682861328125, 0.06304931640625, 0.161590576171875, 0.943389892578125, 0.1010894775390625, 0.3177947998046875, 0.5261993408203125, 0.8787841796875, 0.334808349609375, 0.9416656494140625, 0.1059112548828125, 0.14166259765625, 0.1459197998046875, 0.4518585205078125, 0.7170867919921875, 0.780426025390625, 0.9282684326171875, 0.1866912841796875, 0.3099212646484375, 0.9723663330078125, 0.6660919189453125, 0.4776153564453125, 0.6089935302734375, 0.5861663818359375, 0.097747802734375, 0.9410400390625, 0.5447540283203125, 0.1938629150390625, 0.6757659912109375, 0.1488189697265625, 0.0313873291015625, 0.0909271240234375, 0.077423095703125, 0.56488037109375, 0.152069091796875, 0.9342193603515625, 0.3544464111328125, 0.2056732177734375, 0.57623291015625, 0.9162750244140625, 0.81268310546875, 0.6279296875, 0.919281005859375, 0.6511688232421875, 0.8508453369140625, 0.147705078125, 0.4781341552734375, 0.2693328857421875, 0.5230712890625, 0.3014678955078125, 0.448089599609375, 0.7428741455078125, 0.2154388427734375, 0.3384246826171875, 0.3384246826171875, 0.2907562255859375, 0.6277923583984375, 0.9500732421875, 0.160552978515625, 0.1971435546875, 0.01409912109375, 0.9173583984375, 0.3430328369140625, 0.57879638671875, 0.8821563720703125, 0.8431549072265625, 0.4276580810546875, 0.0084991455078125, 0.9843292236328125, 0.0438232421875, 0.62847900390625, 0.9038238525390625, 0.93798828125, 0.577239990234375, 0.9952392578125, 0.34552001953125, 0.9039154052734375, 0.8197021484375, 0.97869873046875, 0.198150634765625, 0.1522369384765625, 0.30670166015625, 0.472412109375, 0.8040924072265625, 0.298065185546875, 0.4551544189453125, 0.5319061279296875, 0.1485595703125, 0.6487884521484375, 0.3709869384765625, 0.1094970703125, 0.5065460205078125, 0.735504150390625, 0.6759185791015625, 0.574066162109375, 0.988311767578125, 0.199615478515625, 0.531280517578125, 0.7517242431640625, 0.45416259765625, 0.8765869140625, 0.336822509765625, 0.9156494140625, 0.349853515625, 0.3620452880859375, 0.0088348388671875, 0.8975677490234375, 0.7647552490234375, 0.2707672119140625, 0.0011444091796875, 0.7266082763671875, 0.702056884765625, 0.42645263671875, 0.7954864501953125, 0.3783416748046875, 0.5062103271484375, 0.187957763671875, 0.7842864990234375, 0.628997802734375, 0.4463958740234375, 0.0009765625, 0.243927001953125, 0.56854248046875, 0.776214599609375, 0.9217376708984375, 0.203704833984375, 0.681610107421875, 0.46783447265625, 0.3382720947265625, 0.2918548583984375, 0.4907989501953125, 0.431915283203125, 0.93292236328125, 0.7909088134765625, 0.98687744140625, 0.4962158203125, 0.5096588134765625, 0.0662078857421875, 0.2024078369140625, 0.942535400390625, 0.7612762451171875, 0.1389617919921875, 0.9373931884765625, 0.704833984375, 0.24542236328125, 0.94989013671875, 0.12030029296875, 0.7517547607421875, 0.2388458251953125, 0.8553314208984375, 0.2317352294921875, 0.6681671142578125, 0.86981201171875, 0.007232666015625, 0.908447265625, 0.7794647216796875, 0.005035400390625, 0.726806640625, 0.75384521484375, 0.5500030517578125, 0.872161865234375, 0.1676177978515625, 0.892547607421875, 0.3828125, 0.347930908203125, 0.7852630615234375, 0.4788970947265625, 0.99688720703125, 0.4907073974609375, 0.052337646484375, 0.4281158447265625, 0.5872955322265625, 0.675048828125, 0.56903076171875, 0.7838897705078125, 0.55828857421875, 0.5371551513671875, 0.0590972900390625, 0.0835723876953125, 0.518829345703125, 0.0257110595703125, 0.2319488525390625, 0.6074371337890625, 0.6857147216796875, 0.8081207275390625, 0.1791839599609375, 0.431976318359375, 0.9128570556640625, 0.76409912109375, 0.350860595703125, 0.865997314453125, 0.719573974609375, 0.320281982421875, 0.1694183349609375, 0.00567626953125, 0.53778076171875, 0.2247314453125, 0.1301116943359375, 0.9850616455078125, 0.019622802734375, 0.4353179931640625, 0.734222412109375, 0.0406951904296875, 0.112823486328125, 0.4434661865234375, 0.9178314208984375, 0.4163818359375, 0.81097412109375, 0.7867584228515625, 0.4898681640625, 0.8711090087890625, 0.13189697265625, 0.6934661865234375, 0.24554443359375, 0.586334228515625, 0.4208984375, 0.9250335693359375, 0.5906829833984375, 0.5018463134765625, 0.032073974609375, 0.7074737548828125, 0.166473388671875, 0.196258544921875, 0.148712158203125, 0.642059326171875, 0.6722259521484375, 0.7899932861328125, 0.445098876953125, 0.0110321044921875, 0.7447509765625, 0.1239013671875, 0.528106689453125, 0.6385955810546875, 0.1782073974609375, 0.9611968994140625, 0.3010101318359375, 0.1692047119140625, 0.29736328125, 0.127166748046875, 0.766815185546875, 0.56292724609375, 0.2850189208984375, 0.454254150390625, 0.8897247314453125, 0.9443206787109375, 0.05511474609375, 0.530853271484375, 0.3028717041015625, 0.41937255859375, 0.943023681640625, 0.3699798583984375, 0.7048492431640625, 0.66192626953125, 0.2004547119140625, 0.8951568603515625, 0.8036651611328125, 0.3423004150390625, 0.938385009765625, 0.407745361328125, 0.9502410888671875, 0.80926513671875, 0.4149322509765625, 0.2612152099609375, 0.77252197265625, 0.5708160400390625, 0.94921875, 0.7632598876953125, 0.1402130126953125, 0.132476806640625, 0.3573150634765625, 0.68804931640625, 0.8849029541015625, 0.5623931884765625, 0.9171905517578125, 0.998016357421875, 0.190277099609375, 0.150421142578125, 0.381866455078125, 0.8001861572265625, 0.078094482421875, 0.7996063232421875, 0.56976318359375, 0.5417938232421875, 0.040863037109375, 0.3370513916015625, 0.01708984375, 0.31689453125, 0.6058197021484375, 0.8234710693359375, 0.272613525390625, 0.4856719970703125, 0.5930633544921875, 0.179901123046875, 0.3100128173828125, 0.1383056640625, 0.8894500732421875, 0.67803955078125, 0.2630767822265625, 0.04534912109375, 0.17230224609375, 0.4295806884765625, 0.574432373046875, 0.3577728271484375, 0.52764892578125, 0.035186767578125, 0.6156158447265625, 0.616424560546875, 0.245025634765625, 0.4023284912109375, 0.266021728515625, 0.0044097900390625, 0.33538818359375, 0.1784515380859375, 0.3979949951171875, 0.5815887451171875, 0.759674072265625, 0.0495147705078125, 0.80029296875, 0.5197296142578125, 0.2005615234375, 0.329315185546875, 0.1318511962890625, 0.5440521240234375, 0.0889434814453125, 0.76434326171875, 0.6594085693359375, 0.9211883544921875, 0.0707550048828125, 0.4244232177734375, 0.8372039794921875, 0.4235687255859375, 0.3291168212890625, 0.89385986328125, 0.5409088134765625, 0.517608642578125, 0.52618408203125, 0.2841033935546875, 0.0673828125, 0.568084716796875, 0.979736328125, 0.9294891357421875, 0.1871185302734375, 0.2553253173828125, 0.735687255859375, 0.762786865234375, 0.628143310546875, 0.11126708984375, 0.332763671875, 0.173065185546875, 0.227935791015625, 0.9442291259765625, 0.7574310302734375, 0.2562408447265625, 0.99774169921875, 0.6323089599609375, 0.8668212890625, 0.617889404296875, 0.5781097412109375, 0.851348876953125, 0.9974517822265625, 0.9464111328125, 0.048553466796875, 0.6368560791015625, 0.56317138671875, 0.8502044677734375, 0.8090667724609375, 0.61151123046875, 0.2681732177734375, 0.317352294921875, 0.9777679443359375, 0.2441864013671875, 0.670166015625, 0.87188720703125, 0.9440155029296875, 0.039703369140625, 0.7817535400390625, 0.024261474609375, 0.7980499267578125, 0.195465087890625, 0.3968505859375, 0.8306427001953125, 0.6574249267578125, 0.5942840576171875, 0.072540283203125, 0.9837493896484375, 0.648712158203125, 0.12451171875, 0.0666046142578125, 0.76806640625, 0.8747100830078125, 0.5963287353515625, 0.41497802734375, 0.845733642578125, 0.6277923583984375, 0.296417236328125, 0.138092041015625, 0.1086883544921875, 0.77325439453125, 0.0363311767578125, 0.1388092041015625, 0.0058746337890625, 0.6161956787109375, 0.576568603515625, 0.630828857421875, 0.2359619140625, 0.704437255859375, 0.02496337890625, 0.4975738525390625, 0.66265869140625, 0.989013671875, 0.42987060546875, 0.610626220703125, 0.9185791015625, 0.544464111328125, 0.117218017578125, 0.717041015625, 0.4927978515625, 0.82373046875, 0.869598388671875, 0.0189666748046875, 0.5547637939453125, 0.865264892578125, 0.3029937744140625, 0.607452392578125, 0.2076263427734375, 0.632080078125, 0.739166259765625, 0.728485107421875, 0.089324951171875, 0.1675872802734375, 0.29290771484375, 0.0454864501953125, 0.8806915283203125, 0.60955810546875, 0.215911865234375, 0.3643035888671875, 0.607086181640625, 0.4635467529296875, 0.8414459228515625, 0.876312255859375, 0.4951934814453125, 0.175262451171875, 0.907989501953125, 0.991668701171875, 0.8138275146484375, 0.3961334228515625, 0.9910736083984375, 0.22802734375, 0.43743896484375, 0.659881591796875, 0.43609619140625, 0.9685211181640625, 0.3800811767578125, 0.57086181640625, 0.2855224609375, 0.2439422607421875, 0.8935699462890625, 0.0062408447265625, 0.357879638671875, 0.134307861328125, 0.97918701171875, 0.9524078369140625, 0.3544921875, 0.1646881103515625, 0.013885498046875, 0.4761505126953125, 0.4776458740234375, 0.0525054931640625, 0.9479522705078125, 0.6588897705078125, 0.49847412109375, 0.13726806640625, 0.1392974853515625, 0.49896240234375, 0.0871429443359375, 0.1641082763671875, 0.1441802978515625, 0.6508636474609375, 0.4729156494140625, 0.1589508056640625, 0.184814453125, 0.774993896484375, 0.42071533203125, 0.4103851318359375, 0.0926513671875, 0.09088134765625, 0.3059234619140625, 0.3264007568359375, 0.1356048583984375, 0.336395263671875, 0.18304443359375, 0.11688232421875, 0.66607666015625, 0.7597198486328125, 0.201080322265625, 0.227447509765625, 0.15863037109375, 0.558074951171875, 0.3874664306640625, 0.451202392578125, 0.8170013427734375, 0.3338775634765625, 0.1184539794921875, 0.1010284423828125, 0.021514892578125, 0.2756195068359375, 0.3836669921875, 0.7694549560546875, 0.4468841552734375, 0.004791259765625, 0.0912933349609375, 0.822784423828125, 0.849273681640625, 0.1422271728515625, 0.467803955078125, 0.691253662109375, 0.68182373046875, 0.7602996826171875, 0.9164276123046875, 0.2899017333984375, 0.83599853515625, 0.5693206787109375, 0.7252197265625, 0.524993896484375, 0.4641265869140625, 0.2997894287109375, 0.9077911376953125, 0.368927001953125, 0.3857574462890625, 0.7812347412109375, 0.77459716796875, 0.536834716796875, 0.7800445556640625, 0.986053466796875, 0.9640350341796875, 0.8927764892578125, 0.19903564453125, 0.125244140625, 0.0569915771484375, 0.1492919921875, 0.021697998046875, 0.2552337646484375, 0.454315185546875, 0.400360107421875, 0.1006011962890625, 0.66217041015625, 0.5885772705078125, 0.5855560302734375, 0.02972412109375, 0.2501373291015625, 0.5042572021484375, 0.9892425537109375, 0.4593658447265625, 0.4944305419921875, 0.744293212890625, 0.4534912109375, 0.8939208984375, 0.2506256103515625, 0.6053619384765625, 0.6340484619140625, 0.781768798828125, 0.573150634765625, 0.202911376953125, 0.541168212890625, 0.80987548828125, 0.5910797119140625, 0.4748992919921875, 0.216400146484375, 0.93011474609375, 0.2026214599609375, 0.055511474609375, 0.8898773193359375, 0.9675140380859375, 0.3865966796875, 0.406036376953125, 0.6180419921875, 0.888580322265625, 0.93048095703125, 0.1183624267578125, 0.90020751953125, 0.5329742431640625, 0.62860107421875, 0.214508056640625, 0.52734375, 0.6174163818359375, 0.9676971435546875, 0.403717041015625, 0.017242431640625, 0.752349853515625, 0.878997802734375, 0.254608154296875, 0.344940185546875, 0.06536865234375, 0.216705322265625, 0.9956817626953125, 0.0222015380859375, 0.2330474853515625, 0.977508544921875, 0.9835662841796875, 0.28546142578125, 0.917266845703125, 0.6274261474609375, 0.726959228515625, 0.3782196044921875, 0.0605926513671875, 0.408416748046875, 0.4614715576171875, 0.4655914306640625, 0.3963165283203125, 0.5716400146484375, 0.880340576171875, 0.25830078125, 0.030120849609375, 0.759246826171875, 0.9444122314453125, 0.724639892578125, 0.05609130859375, 0.226165771484375, 0.8737335205078125, 0.9599151611328125, 0.6193084716796875, 0.0208892822265625, 0.1143646240234375, 0.6775054931640625, 0.6071319580078125, 0.594207763671875, 0.51678466796875, 0.6951904296875, 0.6214447021484375, 0.6619873046875, 0.4361419677734375, 0.3935394287109375, 0.57977294921875, 0.0406951904296875, 0.4441375732421875, 0.140838623046875, 0.9134979248046875, 0.807159423828125, 0.8448333740234375, 0.7754058837890625, 0.0544586181640625, 0.0850830078125, 0.952056884765625, 0.4233245849609375, 0.3606414794921875, 0.1366729736328125, 0.9651031494140625, 0.940582275390625, 0.8775177001953125, 0.5754547119140625, 0.9917755126953125, 0.4753570556640625, 0.6459197998046875, 0.1741180419921875, 0.738739013671875, 0.848785400390625, 0.629547119140625, 0.930908203125, 0.105560302734375, 0.6052703857421875, 0.61468505859375, 0.2375030517578125, 0.50897216796875, 0.9510955810546875, 0.948883056640625, 0.3842315673828125, 0.8105621337890625, 0.6111297607421875, 0.5346832275390625, 0.9591064453125], "dims": [1, 1, 28, 28], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.onnx b/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2692c0af1a9a75fee9641660fc25f87479a98684 GIT binary patch literal 191 zcmd%7Hf`kOP*o#YwGE-8Ep^Aifp~ePh t<`(3nM#(`f72^`&U=$MIV&Y(gVi_PUlO)dtagGqC0zRMuJ|`vt5dfx#C#L`a literal 0 HcmV?d00001 diff --git a/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.res b/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.res new file mode 100644 index 0000000..568da3c --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/MaxPool/MaxPoolSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x1x14x14xf32>[0.41497802734375, 0.8077850341796875, 0.9555511474609375, 0.9942474365234375, 0.8123626708984375, 0.8960113525390625, 0.7034759521484375, 0.8530120849609375, 0.9936370849609375, 0.9808349609375, 0.903289794921875, 0.7040252685546875, 0.4780731201171875, 0.5194854736328125, 0.9480743408203125, 0.743408203125, 0.7270355224609375, 0.8521881103515625, 0.686187744140625, 0.883270263671875, 0.8399810791015625, 0.9479217529296875, 0.9380645751953125, 0.94097900390625, 0.927337646484375, 0.745269775390625, 0.7880401611328125, 0.8991241455078125, 0.7095794677734375, 0.8368682861328125, 0.943389892578125, 0.56488037109375, 0.9342193603515625, 0.9416656494140625, 0.9162750244140625, 0.81268310546875, 0.919281005859375, 0.9282684326171875, 0.9723663330078125, 0.6660919189453125, 0.7428741455078125, 0.9410400390625, 0.8040924072265625, 0.9500732421875, 0.5319061279296875, 0.9173583984375, 0.57879638671875, 0.8821563720703125, 0.988311767578125, 0.9843292236328125, 0.9038238525390625, 0.93798828125, 0.9952392578125, 0.9039154052734375, 0.97869873046875, 0.30670166015625, 0.942535400390625, 0.7954864501953125, 0.9373931884765625, 0.94989013671875, 0.7517547607421875, 0.8553314208984375, 0.776214599609375, 0.9217376708984375, 0.908447265625, 0.726806640625, 0.75384521484375, 0.93292236328125, 0.98687744140625, 0.7852630615234375, 0.99688720703125, 0.4907073974609375, 0.9850616455078125, 0.734222412109375, 0.7838897705078125, 0.9178314208984375, 0.81097412109375, 0.7867584228515625, 0.8711090087890625, 0.8081207275390625, 0.9128570556640625, 0.9250335693359375, 0.865997314453125, 0.7074737548828125, 0.7048492431640625, 0.6722259521484375, 0.8951568603515625, 0.938385009765625, 0.9502410888671875, 0.80926513671875, 0.9611968994140625, 0.94921875, 0.766815185546875, 0.56292724609375, 0.8897247314453125, 0.9443206787109375, 0.998016357421875, 0.943023681640625, 0.8001861572265625, 0.7996063232421875, 0.5417938232421875, 0.3979949951171875, 0.759674072265625, 0.8234710693359375, 0.5930633544921875, 0.329315185546875, 0.8894500732421875, 0.76434326171875, 0.9211883544921875, 0.8372039794921875, 0.52764892578125, 0.89385986328125, 0.6368560791015625, 0.8502044677734375, 0.979736328125, 0.9777679443359375, 0.735687255859375, 0.9440155029296875, 0.7817535400390625, 0.7980499267578125, 0.9442291259765625, 0.99774169921875, 0.8668212890625, 0.9837493896484375, 0.9974517822265625, 0.9464111328125, 0.869598388671875, 0.865264892578125, 0.607452392578125, 0.77325439453125, 0.739166259765625, 0.6161956787109375, 0.630828857421875, 0.8806915283203125, 0.4975738525390625, 0.989013671875, 0.876312255859375, 0.9185791015625, 0.991668701171875, 0.82373046875, 0.9910736083984375, 0.659881591796875, 0.9685211181640625, 0.774993896484375, 0.42071533203125, 0.8935699462890625, 0.357879638671875, 0.97918701171875, 0.3544921875, 0.7597198486328125, 0.4776458740234375, 0.9479522705078125, 0.49847412109375, 0.8170013427734375, 0.77459716796875, 0.986053466796875, 0.9640350341796875, 0.4468841552734375, 0.822784423828125, 0.849273681640625, 0.691253662109375, 0.7602996826171875, 0.9164276123046875, 0.83599853515625, 0.9892425537109375, 0.4944305419921875, 0.9077911376953125, 0.8939208984375, 0.6340484619140625, 0.878997802734375, 0.541168212890625, 0.80987548828125, 0.9956817626953125, 0.977508544921875, 0.9835662841796875, 0.9675140380859375, 0.726959228515625, 0.93048095703125, 0.90020751953125, 0.62860107421875, 0.880340576171875, 0.9676971435546875, 0.952056884765625, 0.3606414794921875, 0.9651031494140625, 0.8775177001953125, 0.9917755126953125, 0.6459197998046875, 0.848785400390625, 0.930908203125, 0.6052703857421875, 0.61468505859375, 0.9510955810546875, 0.948883056640625, 0.8448333740234375, 0.9591064453125] +1568 rows diff --git a/mlir-assigner/tests/Ops/Mean/MeanSimple.json b/mlir-assigner/tests/Ops/Onnx/Mean/MeanSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Mean/MeanSimple.json rename to mlir-assigner/tests/Ops/Onnx/Mean/MeanSimple.json diff --git a/mlir-assigner/tests/Ops/Mean/MeanSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Mean/MeanSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Mean/MeanSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Mean/MeanSimple.onnx diff --git a/mlir-assigner/tests/Ops/Mean/MeanSimple.res b/mlir-assigner/tests/Ops/Onnx/Mean/MeanSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Mean/MeanSimple.res rename to mlir-assigner/tests/Ops/Onnx/Mean/MeanSimple.res diff --git a/mlir-assigner/tests/Ops/Mod/ModFloat.json b/mlir-assigner/tests/Ops/Onnx/Mod/ModFloat.json similarity index 100% rename from mlir-assigner/tests/Ops/Mod/ModFloat.json rename to mlir-assigner/tests/Ops/Onnx/Mod/ModFloat.json diff --git a/mlir-assigner/tests/Ops/Mod/ModFloat.onnx b/mlir-assigner/tests/Ops/Onnx/Mod/ModFloat.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Mod/ModFloat.onnx rename to mlir-assigner/tests/Ops/Onnx/Mod/ModFloat.onnx diff --git a/mlir-assigner/tests/Ops/Mod/ModFloat.res b/mlir-assigner/tests/Ops/Onnx/Mod/ModFloat.res similarity index 100% rename from mlir-assigner/tests/Ops/Mod/ModFloat.res rename to mlir-assigner/tests/Ops/Onnx/Mod/ModFloat.res diff --git a/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.json b/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.json new file mode 100644 index 0000000..70b9b6e --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.4288177490234375, 0.273223876953125, 0.65606689453125, 0.656890869140625, 0.398529052734375, 0.479583740234375, 0.5372467041015625, 0.7667694091796875, 0.27081298828125, 0.2040557861328125], "dims": [1, 10], "type": "f32"}}, {"memref": {"data": [0.267181396484375, 0.50958251953125, 0.2105865478515625, 0.3502044677734375, 0.662017822265625, 0.5787506103515625, 0.4448699951171875, 0.2337493896484375, 0.7121734619140625, 0.996490478515625], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.onnx new file mode 100644 index 0000000..52368fd --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.onnx @@ -0,0 +1,19 @@ + :n + +in_a +in_bout_a"Mul MulSimpleZ +in_a +  + + +Z +in_b +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.res b/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.res new file mode 100644 index 0000000..9f11c6b --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Mul/MulSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xf32>[0.11457212269306183, 0.13923011720180511, 0.1381588578224182, 0.2300461232662201, 0.26383334398269653, 0.277559369802475, 0.2390049397945404, 0.17923188209533691, 0.19286581873893738, 0.20333965122699738] +23 rows diff --git a/mlir-assigner/tests/Ops/Neg/NegSimple.json b/mlir-assigner/tests/Ops/Onnx/Neg/NegSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Neg/NegSimple.json rename to mlir-assigner/tests/Ops/Onnx/Neg/NegSimple.json diff --git a/mlir-assigner/tests/Ops/Neg/NegSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Neg/NegSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Neg/NegSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Neg/NegSimple.onnx diff --git a/mlir-assigner/tests/Ops/Neg/NegSimple.res b/mlir-assigner/tests/Ops/Onnx/Neg/NegSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Neg/NegSimple.res rename to mlir-assigner/tests/Ops/Onnx/Neg/NegSimple.res diff --git a/mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.json b/mlir-assigner/tests/Ops/Onnx/Reciprocal/ReciprocalSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.json rename to mlir-assigner/tests/Ops/Onnx/Reciprocal/ReciprocalSimple.json diff --git a/mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Reciprocal/ReciprocalSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Reciprocal/ReciprocalSimple.onnx diff --git a/mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.res b/mlir-assigner/tests/Ops/Onnx/Reciprocal/ReciprocalSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.res rename to mlir-assigner/tests/Ops/Onnx/Reciprocal/ReciprocalSimple.res diff --git a/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.json b/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.json new file mode 100644 index 0000000..d0aa630 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.1312408447265625, 0.8585357666015625, 0.5255584716796875, 0.273773193359375, 0.263427734375, 0.1332550048828125, 0.61956787109375, 0.2161865234375, 0.8116302490234375, 0.925689697265625, 0.655914306640625, 0.1323089599609375, 0.05963134765625, 0.2934112548828125, 0.4145660400390625, 0.5701904296875, 0.9395904541015625, 0.1544342041015625, 0.80474853515625, 0.0964813232421875, 0.3243865966796875, 0.3674163818359375, 0.28509521484375, 0.529022216796875, 0.881103515625, 0.8309173583984375, 0.9957275390625, 0.0896759033203125, 0.37335205078125, 0.7725677490234375, 0.376617431640625, 0.7970428466796875, 0.3000335693359375, 0.744354248046875, 0.75439453125, 0.0270233154296875, 0.6620330810546875, 0.3969573974609375, 0.8841552734375, 0.6694488525390625, 0.37115478515625, 0.6509246826171875, 0.5106658935546875, 0.221649169921875, 0.09649658203125, 0.3371124267578125, 0.5616455078125, 0.7302398681640625, 0.5652008056640625, 0.3376312255859375, 0.6774444580078125, 0.4034576416015625, 0.4172515869140625, 0.3006591796875, 0.6054840087890625, 0.1515655517578125, 0.625579833984375, 0.849395751953125, 0.37127685546875, 0.9941864013671875, 0.67340087890625, 0.069915771484375, 0.1803741455078125, 0.0199432373046875, 0.59765625, 0.63201904296875, 0.10382080078125, 0.0333251953125, 0.6988677978515625, 0.40704345703125, 0.01019287109375, 0.49945068359375, 0.267913818359375, 0.3834686279296875, 0.2595672607421875, 0.9595947265625, 0.871490478515625, 0.5311431884765625, 0.0929412841796875, 0.0879364013671875, 0.5100250244140625, 0.0683441162109375, 0.455322265625, 0.0227203369140625, 0.4635772705078125, 0.8970184326171875, 0.8829498291015625, 0.42999267578125, 0.8414306640625, 0.0028533935546875, 0.20050048828125, 0.7550506591796875, 0.6178436279296875, 0.07427978515625, 0.697357177734375, 0.971221923828125, 0.404144287109375, 0.3426361083984375, 0.369659423828125, 0.445098876953125, 0.07965087890625, 0.4962005615234375, 0.413726806640625, 0.6714935302734375, 0.599456787109375, 0.825531005859375, 0.4766845703125, 0.599090576171875, 0.490509033203125, 0.110015869140625, 0.264892578125, 0.4504547119140625, 0.0131683349609375, 0.4315185546875, 0.7747955322265625, 0.2967681884765625, 0.6665191650390625, 0.039093017578125, 0.70916748046875, 0.4820098876953125, 0.2995147705078125, 0.3753509521484375, 0.6167755126953125, 0.893524169921875, 0.93798828125, 0.0672454833984375, 0.2371673583984375, 0.8929901123046875, 0.1709747314453125, 0.7216949462890625, 0.92266845703125, 0.42437744140625, 0.2947845458984375, 0.8960723876953125, 0.7233734130859375, 0.7078704833984375, 0.95550537109375, 0.0633087158203125, 0.611968994140625, 0.54461669921875, 0.6828155517578125, 0.228790283203125, 0.6581573486328125, 0.1966705322265625, 0.227813720703125, 0.685699462890625, 0.969696044921875, 0.04779052734375, 0.8706512451171875, 0.933624267578125, 0.9492950439453125, 0.00042724609375, 0.097137451171875, 0.661529541015625, 0.554107666015625, 0.797882080078125, 0.14837646484375, 0.9954376220703125, 0.384368896484375, 0.8187103271484375, 0.303680419921875, 0.4588470458984375, 0.5937042236328125, 0.57476806640625, 0.8383026123046875, 0.16253662109375, 0.941680908203125, 0.09356689453125, 0.4796905517578125, 0.51312255859375, 0.1929931640625, 0.415283203125, 0.48138427734375, 0.9959564208984375, 0.01361083984375, 0.97308349609375, 0.090179443359375, 0.32220458984375, 0.115447998046875, 0.3860626220703125, 0.85272216796875, 0.6641082763671875, 0.9465179443359375, 0.87451171875, 0.4649810791015625, 0.9612884521484375, 0.78961181640625, 0.9600830078125, 0.96551513671875, 0.75360107421875, 0.4864654541015625, 0.3233795166015625, 0.8290252685546875, 0.2139892578125, 0.3491058349609375, 0.1858673095703125, 0.2030181884765625, 0.5471038818359375, 0.4773712158203125, 0.3423919677734375, 0.158294677734375, 0.8387451171875, 0.336090087890625, 0.67840576171875, 0.3337554931640625, 0.47467041015625, 0.0447845458984375, 0.3543243408203125, 0.9336090087890625, 0.8908843994140625, 0.13580322265625, 0.128082275390625, 0.57373046875, 0.8593292236328125, 0.459503173828125, 0.3585357666015625, 0.5640106201171875, 0.6294403076171875, 0.6407470703125, 0.9517364501953125, 0.32501220703125, 0.7706756591796875, 0.0996551513671875, 0.713836669921875, 0.6484527587890625, 0.8423309326171875, 0.8894500732421875, 0.1443939208984375, 0.580169677734375, 0.9826202392578125, 0.9716949462890625, 0.12445068359375, 0.2350311279296875, 0.409210205078125, 0.45745849609375, 0.648712158203125, 0.2900543212890625, 0.67681884765625, 0.140228271484375, 0.2776641845703125, 0.6641082763671875, 0.39227294921875, 0.971343994140625, 0.37017822265625, 0.16192626953125, 0.79754638671875, 0.1012420654296875, 0.7954864501953125, 0.0194091796875, 0.58642578125, 0.6974945068359375, 0.7992401123046875, 0.2922210693359375, 0.2378997802734375, 0.1004791259765625, 0.0510711669921875, 0.015228271484375, 0.1232452392578125, 0.769134521484375, 0.6618804931640625, 0.5911102294921875, 0.756195068359375, 0.92449951171875, 0.1116943359375, 0.3064117431640625, 0.624420166015625, 0.88433837890625, 0.798431396484375, 0.6395416259765625, 0.0788421630859375, 0.534149169921875, 0.76031494140625, 0.36749267578125, 0.970977783203125, 0.5773468017578125, 0.6132049560546875, 0.6641082763671875, 0.364501953125, 0.2777862548828125, 0.944091796875, 0.7659454345703125, 0.15972900390625, 0.890838623046875, 0.6611175537109375, 0.3780059814453125, 0.6411895751953125, 0.337158203125, 0.7220611572265625, 0.1844024658203125, 0.986907958984375, 0.432403564453125, 0.009033203125, 0.2064208984375, 0.4802703857421875, 0.84783935546875, 0.1705322265625, 0.398040771484375, 0.7461090087890625, 0.8575897216796875, 0.215057373046875, 0.5662078857421875, 0.64208984375, 0.031982421875, 0.9661407470703125, 0.9826202392578125, 0.0577545166015625, 0.305450439453125, 0.48992919921875, 0.976654052734375, 0.810638427734375, 0.83984375, 0.984893798828125, 0.8299407958984375, 0.1878814697265625, 0.2839202880859375, 0.6182861328125, 0.497833251953125, 0.25799560546875, 0.3973846435546875, 0.209869384765625, 0.141357421875, 0.75189208984375, 0.026702880859375, 0.575439453125, 0.1498260498046875, 0.02557373046875, 0.598663330078125, 0.6682281494140625, 0.0320587158203125, 0.1302947998046875, 0.0830078125, 0.93597412109375, 0.7719879150390625, 0.1640625, 0.5516510009765625, 0.9373626708984375, 0.8345947265625, 0.2799224853515625, 0.0880279541015625, 0.0438385009765625, 0.92254638671875, 0.091094970703125, 0.9220428466796875, 0.7575225830078125, 0.5646820068359375, 0.1938018798828125, 0.6256866455078125, 0.790771484375, 0.5340423583984375, 0.4585113525390625, 0.59869384765625, 0.04974365234375, 0.6928253173828125, 0.3751068115234375, 0.527130126953125, 0.3168792724609375, 0.157745361328125, 0.1548614501953125, 0.4486541748046875, 0.5770263671875, 0.9263458251953125, 0.02105712890625, 0.462005615234375, 0.40325927734375, 0.4575347900390625, 0.04718017578125, 0.712432861328125, 0.1207733154296875, 0.9090728759765625, 0.498748779296875, 0.395416259765625, 0.059112548828125, 0.01861572265625, 0.695556640625, 0.7119903564453125, 0.6105194091796875, 0.09552001953125, 0.7026519775390625, 0.0245819091796875, 0.939605712890625, 0.3610687255859375, 0.693634033203125, 0.13751220703125, 0.510040283203125, 0.3706817626953125, 0.2611236572265625, 0.025543212890625, 0.042724609375, 0.6503753662109375, 0.872467041015625, 0.145751953125, 0.7494049072265625, 0.9432830810546875, 0.6071624755859375, 0.5453643798828125, 0.948089599609375, 0.753997802734375, 0.3357696533203125, 0.4647674560546875, 0.9427947998046875, 0.66253662109375, 0.163909912109375, 0.468536376953125, 0.2841339111328125, 0.4693756103515625, 0.8645172119140625, 0.7058563232421875, 0.855133056640625, 0.446868896484375, 0.527557373046875, 0.85235595703125, 0.72161865234375, 0.1135101318359375, 0.6080474853515625, 0.891387939453125, 0.2603759765625, 0.28240966796875, 0.342071533203125, 0.0840911865234375, 0.3730010986328125, 0.1385650634765625, 0.894561767578125, 0.5661468505859375, 0.913665771484375, 0.6291046142578125, 0.63385009765625, 0.956024169921875, 0.6685943603515625, 0.9681854248046875, 0.6775970458984375, 0.1095428466796875, 0.9576263427734375, 0.1182708740234375, 0.9025421142578125, 0.589080810546875, 0.6151123046875, 0.3088226318359375, 0.5020294189453125, 0.5196533203125, 0.21832275390625, 0.2897491455078125, 0.5177001953125, 0.413177490234375, 0.6633758544921875, 0.97918701171875, 0.98565673828125, 0.527099609375, 0.51629638671875, 0.9254302978515625, 0.8678741455078125, 0.5008544921875, 0.9866485595703125, 0.2784423828125, 0.4407958984375, 0.8636474609375, 0.789215087890625, 0.8189697265625, 0.9579620361328125, 0.94232177734375, 0.0472869873046875, 0.216064453125, 0.4600830078125, 0.0279998779296875, 0.825927734375, 0.593963623046875, 0.1497039794921875, 0.3779754638671875, 0.139373779296875, 0.2581329345703125, 0.6213531494140625, 0.345855712890625, 0.419158935546875, 0.0718231201171875, 0.0893096923828125, 0.48602294921875, 0.8202972412109375, 0.524810791015625, 0.896881103515625, 0.241363525390625, 0.52630615234375, 0.8589324951171875, 0.5771484375, 0.558319091796875, 0.762664794921875, 0.179168701171875, 0.391021728515625, 0.227783203125, 0.9315338134765625, 0.6878814697265625, 0.1544647216796875, 0.0104522705078125, 0.28692626953125, 0.423065185546875, 0.6535797119140625, 0.54766845703125, 0.03863525390625, 0.20709228515625, 0.377197265625, 0.8967132568359375, 0.1578826904296875, 0.555328369140625, 0.7096710205078125, 0.3751220703125, 0.508270263671875, 0.8252716064453125, 0.7535552978515625, 0.11175537109375, 0.64654541015625, 0.084503173828125, 0.9857330322265625, 0.8544464111328125, 0.5496063232421875, 0.462493896484375, 0.1487884521484375, 0.402618408203125, 0.5099945068359375, 0.01190185546875, 0.519500732421875, 0.2168121337890625, 0.0934295654296875, 0.7934112548828125, 0.4290618896484375, 0.6370391845703125, 0.827850341796875, 0.4654693603515625, 0.9679412841796875, 0.4185638427734375, 0.532318115234375, 0.711090087890625, 0.0680694580078125, 0.919036865234375, 0.869293212890625, 0.8402557373046875, 0.3856353759765625, 0.26458740234375, 0.643524169921875, 0.7870025634765625, 0.2952880859375, 0.0824127197265625, 0.109619140625, 0.4663238525390625, 0.23919677734375, 0.8123016357421875, 0.226837158203125, 0.4779205322265625, 0.1494140625, 0.95013427734375, 0.0420074462890625, 0.948455810546875, 0.67645263671875, 0.8955841064453125, 0.261322021484375, 0.0624542236328125, 0.59393310546875, 0.527679443359375, 0.906402587890625, 0.279205322265625, 0.4562835693359375, 0.43780517578125, 0.0108184814453125, 0.59368896484375, 0.5832366943359375, 0.0656280517578125, 0.2608795166015625, 0.5551300048828125, 0.8009796142578125, 0.797210693359375, 0.5304412841796875, 0.510498046875, 0.7337493896484375, 0.234405517578125, 0.299468994140625, 0.2288055419921875, 0.359832763671875, 0.71820068359375, 0.4381256103515625, 0.4235382080078125, 0.2129974365234375, 0.9348297119140625, 0.854248046875, 0.5142669677734375, 0.67047119140625, 0.0300140380859375, 0.706787109375, 0.33502197265625, 0.771820068359375, 0.196563720703125, 0.7443389892578125, 0.9049835205078125, 0.530731201171875, 0.23699951171875, 0.40155029296875, 0.97802734375, 0.47491455078125, 0.9055328369140625, 0.593414306640625, 0.110565185546875, 0.614227294921875, 0.096649169921875, 0.6578216552734375, 0.741241455078125, 0.1528778076171875, 0.9512939453125, 0.2027587890625, 0.18792724609375, 0.8864898681640625, 0.315704345703125, 0.9620208740234375, 0.812957763671875, 0.1016693115234375, 0.785797119140625, 0.5203094482421875, 0.0572662353515625, 0.5069122314453125, 0.3734130859375, 0.7236480712890625, 0.8979339599609375, 0.638275146484375, 0.582763671875, 0.8965606689453125, 0.677276611328125, 0.2410736083984375, 0.652008056640625, 0.1397705078125, 0.530426025390625, 0.2426910400390625, 0.7936859130859375, 0.339599609375, 0.26708984375, 0.4553985595703125, 0.698455810546875, 0.5232391357421875, 0.9666595458984375, 0.7169342041015625, 0.1769256591796875, 0.481414794921875, 0.1157989501953125, 0.2022552490234375, 0.1060333251953125, 0.8979644775390625, 0.6587677001953125, 0.1229095458984375, 0.9783477783203125, 0.035797119140625, 0.2136688232421875, 0.411590576171875, 0.8740386962890625, 0.5175018310546875, 0.931732177734375, 0.4307403564453125, 0.22003173828125, 0.5972137451171875, 0.989013671875, 0.41680908203125, 0.139190673828125, 0.1769561767578125, 0.98175048828125, 0.9022979736328125, 0.13018798828125, 0.816162109375, 0.2666473388671875, 0.2591400146484375, 0.2581329345703125, 0.9176483154296875, 0.88507080078125, 0.7740325927734375, 0.9463043212890625, 0.3080596923828125, 0.317230224609375, 0.7824249267578125, 0.499298095703125, 0.7840728759765625, 0.1572113037109375, 0.0841064453125, 0.411224365234375, 0.493255615234375, 0.0263519287109375, 0.5362548828125, 0.0445404052734375, 0.7044677734375, 0.918121337890625, 0.4080352783203125, 0.77398681640625, 0.3075103759765625, 0.6955718994140625, 0.37310791015625, 0.2418365478515625, 0.29547119140625, 0.584991455078125, 0.1346588134765625, 0.83026123046875, 0.9375457763671875, 0.41619873046875, 0.021270751953125, 0.48211669921875, 0.411346435546875, 0.495208740234375, 0.1797027587890625, 0.11737060546875, 0.7004852294921875, 0.2683868408203125, 0.781707763671875, 0.3995361328125, 0.6688690185546875, 0.9837493896484375, 0.8708343505859375, 0.361419677734375, 0.3291168212890625, 0.1739654541015625, 0.46112060546875, 0.2177581787109375, 0.173248291015625, 0.5762481689453125, 0.0001983642578125, 0.2846832275390625, 0.393951416015625, 0.4324951171875, 0.506683349609375, 0.9403533935546875, 0.81536865234375, 0.5519561767578125, 0.76806640625, 0.098297119140625, 0.7493896484375, 0.265167236328125, 0.16363525390625, 0.4109954833984375, 0.50091552734375, 0.4142913818359375, 0.8516998291015625, 0.035125732421875, 0.186065673828125, 0.83203125, 0.432525634765625, 0.8064117431640625, 0.6488037109375, 0.3474273681640625, 0.5998992919921875, 0.9093170166015625, 0.298583984375, 0.124359130859375, 0.949554443359375, 0.165069580078125, 0.2396392822265625, 0.6680755615234375, 0.133697509765625, 0.66485595703125, 0.2691192626953125, 0.072357177734375, 0.19427490234375, 0.31524658203125, 0.4712677001953125, 0.2906036376953125, 0.6918792724609375, 0.8482208251953125, 0.62054443359375, 0.252777099609375, 0.1357879638671875, 0.686737060546875, 0.4319305419921875, 0.7317047119140625, 0.024139404296875, 0.913665771484375, 0.3812103271484375, 0.527740478515625, 0.7228851318359375, 0.9935302734375, 0.100799560546875, 0.9854736328125, 0.3037872314453125, 0.46807861328125, 0.1755828857421875, 0.2363739013671875, 0.5822906494140625, 0.2602081298828125, 0.578155517578125, 0.8868408203125, 0.034576416015625, 0.70458984375, 0.8925933837890625, 0.2381744384765625, 0.9366912841796875, 0.0635528564453125, 0.50592041015625, 0.677093505859375, 0.4429168701171875, 0.7772979736328125, 0.268829345703125, 0.8329925537109375, 0.9127197265625, 0.148223876953125, 0.4543304443359375, 0.6136627197265625, 0.4053955078125, 0.870697021484375, 0.74700927734375, 0.4160003662109375, 0.5918426513671875, 0.8078765869140625, 0.4981231689453125, 0.4129791259765625, 0.913116455078125, 0.6909637451171875, 0.43731689453125, 0.7689361572265625, 0.052032470703125, 0.9085235595703125, 0.6693267822265625, 0.734832763671875, 0.8594818115234375, 0.5400543212890625, 0.9854583740234375, 0.6514892578125, 0.439208984375, 0.8494415283203125, 0.3029327392578125, 0.8702239990234375, 0.55865478515625, 0.4002227783203125, 0.5298614501953125, 0.1949615478515625, 0.8521270751953125, 0.51617431640625, 0.8502197265625, 0.583770751953125, 0.3801116943359375, 0.300689697265625, 0.987152099609375, 0.991241455078125, 0.354736328125, 0.6945953369140625, 0.0342254638671875, 0.481781005859375, 0.6847076416015625, 0.467559814453125, 0.99102783203125, 0.0923004150390625, 0.960601806640625, 0.78411865234375, 0.8041229248046875, 0.4650726318359375, 0.7516632080078125, 0.886199951171875, 0.139617919921875, 0.3021697998046875, 0.2025146484375, 0.191162109375, 0.6210784912109375, 0.874908447265625, 0.235565185546875, 0.091766357421875, 0.5915374755859375, 0.25653076171875, 0.002899169921875, 0.61346435546875, 0.7718353271484375, 0.8653411865234375, 0.5492706298828125, 0.7942352294921875, 0.2067413330078125, 0.93701171875, 0.4464874267578125, 0.6032562255859375, 0.5765380859375, 0.819427490234375, 0.4188995361328125, 0.417877197265625, 0.755401611328125, 0.1519317626953125, 0.5752716064453125, 0.686859130859375, 0.1099853515625, 0.7429046630859375, 0.0902862548828125, 0.5343475341796875, 0.2995452880859375, 0.2808837890625, 0.9176177978515625, 0.48773193359375, 0.6313018798828125, 0.652740478515625, 0.0026092529296875, 0.240936279296875, 0.5423126220703125, 0.729888916015625, 0.246856689453125, 0.320709228515625, 0.9539642333984375, 0.9307861328125, 0.2679595947265625, 0.22003173828125, 0.5854949951171875, 0.154632568359375, 0.1465301513671875, 0.6817474365234375, 0.083343505859375, 0.2006988525390625, 0.8954620361328125, 0.13372802734375, 0.69317626953125, 0.8433837890625, 0.6103363037109375, 0.0378570556640625, 0.218963623046875, 0.8819122314453125, 0.58013916015625, 0.962738037109375, 0.5103302001953125, 0.7282867431640625, 0.2218170166015625, 0.0101776123046875, 0.3099822998046875, 0.7382049560546875, 0.9084320068359375, 0.0919036865234375, 0.911102294921875, 0.1519317626953125, 0.7216949462890625, 0.635223388671875, 0.7535400390625, 0.7934112548828125, 0.9361572265625, 0.1580810546875, 0.9283599853515625, 0.93084716796875, 0.7288360595703125, 0.25091552734375, 0.057891845703125, 0.6285400390625, 0.757781982421875, 0.129547119140625, 0.983917236328125, 0.0568695068359375, 0.6289215087890625, 0.008941650390625, 0.548248291015625, 0.28802490234375, 0.1602630615234375, 0.3843994140625, 0.9802703857421875, 0.8563690185546875, 0.0059967041015625, 0.0230712890625, 0.9762115478515625, 0.20404052734375, 0.271026611328125, 0.475311279296875, 0.3471527099609375, 0.8840484619140625, 0.2438507080078125, 0.5460052490234375, 0.603271484375, 0.2649383544921875, 0.7987823486328125, 0.7456817626953125, 0.305084228515625, 0.2191009521484375, 0.839752197265625, 0.3550567626953125, 0.8483123779296875, 0.90887451171875, 0.6070556640625, 0.4094085693359375, 0.60540771484375, 0.6075439453125, 0.45294189453125, 0.011444091796875, 0.043426513671875, 0.3886260986328125, 0.0533599853515625, 0.1296844482421875, 0.838653564453125, 0.7720489501953125, 0.3236236572265625, 0.663604736328125, 7.62939453125e-05, 0.2392425537109375, 0.72222900390625, 0.2258453369140625, 0.477996826171875, 0.5438995361328125, 0.6926422119140625, 0.8925933837890625, 0.388031005859375, 0.259033203125, 0.457183837890625, 0.7586822509765625, 0.507659912109375, 0.0799407958984375, 0.6481170654296875, 0.1912994384765625, 0.587799072265625, 0.4725799560546875, 0.512420654296875, 0.2281341552734375, 0.665313720703125, 0.923492431640625, 0.6562652587890625, 0.0239105224609375, 0.8880767822265625, 0.2408599853515625, 0.0023956298828125, 0.238494873046875, 0.70947265625, 0.442962646484375, 0.3292236328125, 0.16357421875, 0.853912353515625, 0.194091796875, 0.25701904296875, 0.94403076171875, 0.6750640869140625, 0.505462646484375, 0.580230712890625, 0.7035369873046875, 0.48126220703125, 0.48590087890625, 0.8467864990234375, 0.447113037109375, 0.291717529296875, 0.007171630859375, 0.9796905517578125, 0.5538330078125, 0.15582275390625, 0.3148345947265625, 0.6032562255859375, 0.6391448974609375, 0.99462890625, 0.1631622314453125, 0.947540283203125, 0.7681884765625, 0.895965576171875, 0.56494140625, 0.3343505859375, 0.34722900390625, 0.363616943359375, 0.3627471923828125, 0.519287109375, 0.4338531494140625, 0.2504730224609375, 0.024627685546875, 0.160980224609375, 0.085479736328125, 0.799591064453125, 0.5047760009765625, 0.9828033447265625, 0.0285491943359375, 0.74407958984375, 0.1258544921875, 0.080169677734375, 0.5366973876953125, 0.682037353515625, 0.45086669921875, 0.2677459716796875, 0.1105499267578125, 0.6703948974609375, 0.6037139892578125, 0.618621826171875, 0.7115020751953125, 0.0774383544921875, 0.0694580078125, 0.901092529296875, 0.9705810546875, 0.4132080078125, 0.989898681640625, 0.25921630859375, 0.52032470703125, 0.5360870361328125, 0.8711090087890625, 0.4884796142578125, 0.69476318359375, 0.8604888916015625, 0.4541015625, 0.545623779296875, 0.73089599609375, 0.9013214111328125, 0.491180419921875, 0.267822265625, 0.10028076171875, 0.0487823486328125, 0.4959716796875, 0.290618896484375, 0.3282623291015625, 0.7934722900390625, 0.636016845703125, 0.15142822265625, 0.3834991455078125, 0.6342620849609375, 0.2671356201171875, 0.58392333984375, 0.6948089599609375, 0.2507171630859375, 0.9211883544921875, 0.8943328857421875, 0.8665771484375, 0.352813720703125, 0.6098785400390625, 0.3216552734375, 0.4087677001953125, 0.89605712890625, 0.510101318359375, 0.2163543701171875, 0.4393310546875, 0.606109619140625, 0.7162628173828125, 0.256561279296875, 0.4998779296875, 0.316009521484375, 0.133392333984375, 0.1105194091796875, 0.0738983154296875, 0.5319976806640625, 0.7034759521484375, 0.3856658935546875, 0.9630889892578125, 0.2204132080078125, 0.669097900390625, 0.899505615234375, 0.767120361328125, 0.7120513916015625, 0.6218109130859375, 0.5730438232421875, 0.2243194580078125, 0.3184814453125, 0.102874755859375, 0.356597900390625, 0.0236663818359375, 0.5240478515625, 0.8576202392578125, 0.0726318359375, 0.2667388916015625, 0.0266876220703125, 0.3551177978515625, 0.8059234619140625, 0.9958648681640625, 0.890472412109375, 0.2914276123046875, 0.10369873046875, 0.1156005859375, 0.0721435546875, 0.8879547119140625, 0.549560546875, 0.5500030517578125, 0.99310302734375, 0.3637542724609375, 0.2096710205078125, 0.133026123046875, 0.8609771728515625, 0.1844940185546875, 0.0822601318359375, 0.012939453125, 0.7055511474609375, 0.1088714599609375, 0.5577850341796875, 0.7915191650390625, 0.757415771484375, 0.1364593505859375, 0.41461181640625, 0.09857177734375, 0.9097747802734375, 0.7555084228515625, 0.364288330078125, 0.726104736328125, 0.34539794921875, 0.4195404052734375, 0.51409912109375, 0.190582275390625, 0.67681884765625, 0.4815216064453125, 0.517913818359375, 0.4639892578125, 0.40771484375, 0.2094268798828125, 0.82293701171875, 0.158599853515625, 0.5465087890625, 0.6485443115234375, 0.459503173828125, 0.8243560791015625, 0.3571624755859375, 0.6621246337890625, 0.3669586181640625, 0.782989501953125, 0.9394378662109375, 0.9952392578125, 0.1431427001953125, 0.2315673828125, 0.9049224853515625, 0.4158935546875, 0.37255859375, 0.096832275390625, 0.347442626953125, 0.5293731689453125, 0.588165283203125, 0.3876495361328125, 0.7474517822265625, 0.8034210205078125, 0.6041259765625, 0.0317230224609375, 0.757232666015625, 0.801025390625, 0.4513702392578125, 0.2764892578125, 0.705230712890625, 0.901824951171875, 0.4444580078125, 0.944580078125, 0.4544830322265625, 0.3617706298828125, 0.9124603271484375, 0.4586181640625, 0.7699127197265625, 0.55517578125, 0.09967041015625, 0.87921142578125, 0.4772796630859375, 0.247802734375, 0.3630218505859375, 0.73431396484375, 0.27203369140625, 0.4527740478515625, 0.9989013671875, 0.6032257080078125, 0.2791900634765625, 0.9267425537109375, 0.9324798583984375, 0.6615447998046875, 0.150146484375, 0.073486328125, 0.2743682861328125, 0.4611358642578125, 0.2919921875, 0.402008056640625, 0.4558258056640625, 0.5902252197265625, 0.2950592041015625, 0.9007110595703125, 0.5031890869140625, 0.3277435302734375, 0.78729248046875, 0.0083770751953125, 0.1468505859375, 0.0673828125, 0.4505767822265625, 0.00274658203125, 0.6927337646484375, 0.9690093994140625, 0.434661865234375, 0.811309814453125, 0.6978302001953125, 0.7429046630859375, 0.417877197265625, 0.7977142333984375, 0.8707733154296875, 0.6246490478515625, 0.59039306640625, 0.1712188720703125, 0.89739990234375, 0.8365325927734375, 0.8082275390625, 0.4925994873046875, 0.887939453125, 0.460601806640625, 0.7062530517578125, 0.9515533447265625, 0.0465850830078125, 0.8719482421875, 0.6301422119140625, 0.112457275390625, 0.9061737060546875, 0.4464263916015625, 0.8148345947265625, 0.890289306640625, 0.9697265625, 0.0341949462890625, 0.452056884765625, 0.4661407470703125, 0.4237518310546875, 0.6627960205078125, 0.69622802734375, 0.4542999267578125, 0.3101348876953125, 0.5973358154296875, 0.9185638427734375, 0.0724334716796875, 0.6239013671875, 0.4791107177734375, 0.21759033203125, 0.2188873291015625, 0.181640625, 0.777740478515625, 0.1357879638671875, 0.828125, 0.886962890625, 0.4862060546875, 0.9181976318359375, 0.314178466796875, 0.64630126953125, 0.987030029296875, 0.528717041015625, 0.4388275146484375, 0.7927093505859375, 0.635589599609375, 0.5860137939453125, 0.6268768310546875, 0.728363037109375, 0.0005950927734375, 0.36456298828125, 0.1092071533203125, 0.630706787109375, 0.76544189453125, 0.451812744140625, 0.3990936279296875, 0.983734130859375, 0.3469085693359375, 0.4569091796875, 0.2111968994140625, 0.8760833740234375, 0.4651031494140625, 0.97332763671875, 0.4826202392578125, 0.4747467041015625, 0.3764495849609375, 0.8346099853515625, 0.6454620361328125, 0.7080230712890625, 0.924163818359375, 0.58868408203125, 0.8481292724609375, 0.1662750244140625, 0.3852386474609375, 0.646209716796875, 0.3819427490234375, 0.2425079345703125, 0.430694580078125, 0.10089111328125, 0.4223785400390625, 0.1219482421875, 0.343475341796875, 0.443572998046875, 0.112945556640625, 0.245849609375, 0.50946044921875, 0.01788330078125, 0.70416259765625, 0.409027099609375, 0.5713958740234375, 0.7185516357421875, 0.5713653564453125, 0.6368865966796875, 0.244476318359375, 0.98419189453125, 0.7573699951171875, 0.5603790283203125, 0.84393310546875, 0.412017822265625, 0.094818115234375, 0.5359039306640625, 0.4619293212890625, 0.349884033203125, 0.302734375, 0.5666351318359375, 0.8720245361328125, 0.600372314453125, 0.7875518798828125, 0.835235595703125, 0.7966461181640625, 0.845367431640625, 0.6643524169921875, 0.8926239013671875, 0.06414794921875, 0.8350830078125, 0.9719085693359375, 0.0316314697265625, 0.5960235595703125, 0.1950836181640625, 0.287322998046875, 0.25384521484375, 0.033050537109375, 0.3328857421875, 0.643951416015625, 0.5968475341796875, 0.7160186767578125, 0.9354400634765625, 0.3514862060546875, 0.585357666015625, 0.599151611328125, 0.5986785888671875, 0.855224609375, 0.897369384765625, 0.111358642578125, 0.8071746826171875, 0.370391845703125, 0.6653900146484375, 0.23663330078125, 0.8591766357421875, 0.0123443603515625, 0.0096588134765625, 0.0734405517578125, 0.13409423828125, 0.8439178466796875, 0.9866180419921875, 0.047698974609375, 0.943634033203125, 0.4599609375, 0.7826385498046875, 0.7970733642578125, 0.2178955078125, 0.4826507568359375, 0.5185699462890625, 0.6916656494140625, 0.3852996826171875, 0.7530670166015625, 0.7661895751953125, 0.4238433837890625, 0.862945556640625, 0.7587738037109375, 0.633087158203125, 0.4487762451171875, 0.413818359375, 0.6743011474609375, 0.379638671875, 0.8812103271484375, 0.5418548583984375, 0.57940673828125, 0.9487457275390625, 0.4503936767578125, 0.345855712890625, 0.60986328125, 0.470947265625, 0.11944580078125, 0.809906005859375, 0.1909332275390625, 0.520294189453125, 0.524200439453125, 0.6219635009765625, 0.2432708740234375, 0.0897369384765625, 0.238067626953125, 0.1759796142578125, 0.1047821044921875, 0.875274658203125, 0.650299072265625, 0.8064727783203125, 0.26263427734375, 0.066680908203125, 0.65283203125, 0.901885986328125, 0.0526885986328125, 0.9474945068359375, 0.842376708984375, 0.568817138671875, 0.33990478515625, 0.4124908447265625, 0.0341033935546875, 0.3690643310546875, 0.5460357666015625, 0.3050384521484375, 0.1100616455078125, 0.361328125, 0.66802978515625, 0.5844879150390625, 0.5752716064453125, 0.058502197265625, 0.5604248046875, 0.8697357177734375, 0.543731689453125, 0.651031494140625, 0.6339111328125, 0.5249786376953125, 0.8226776123046875, 0.6000823974609375, 0.0621795654296875, 0.768951416015625, 0.774139404296875, 0.7099609375, 0.7966156005859375, 0.64093017578125, 0.9134674072265625, 0.4128875732421875, 0.211395263671875, 0.841827392578125, 0.4521331787109375, 0.9672698974609375, 0.6544036865234375, 0.856964111328125, 0.9759674072265625, 0.4154205322265625, 0.67095947265625, 0.34735107421875, 0.83050537109375, 0.17193603515625, 0.9307403564453125, 0.1368408203125, 0.92120361328125, 0.402740478515625, 0.7044677734375, 0.6752777099609375, 0.4085693359375, 0.9528350830078125, 0.902069091796875, 0.511993408203125, 0.822357177734375, 0.3226470947265625, 0.1216278076171875, 0.0333099365234375, 0.696868896484375, 0.508544921875, 0.929779052734375, 0.0285186767578125, 0.7543792724609375, 0.018890380859375, 0.83929443359375, 0.9529876708984375, 0.0764312744140625, 0.1827392578125, 0.7538604736328125, 0.87847900390625, 0.7257537841796875, 0.76904296875, 0.18109130859375, 0.163238525390625, 0.213836669921875, 0.6088714599609375, 0.97247314453125, 0.18560791015625, 0.2942352294921875, 0.472442626953125, 0.7904815673828125, 0.9528961181640625, 0.634246826171875, 0.4446258544921875, 0.273681640625, 0.0612030029296875, 0.4725799560546875, 0.5902099609375, 0.7678680419921875, 0.9705352783203125, 0.358062744140625, 0.1136932373046875, 0.22412109375, 0.954254150390625, 0.089935302734375, 0.608917236328125, 0.8682861328125, 0.63818359375, 0.765594482421875, 0.8845062255859375, 0.655181884765625, 0.4302825927734375, 0.0379180908203125, 0.534759521484375, 0.6593017578125, 0.722900390625, 0.6688690185546875, 0.5003509521484375, 0.4118194580078125, 0.99237060546875, 0.975830078125, 0.178985595703125, 0.217193603515625, 0.1761016845703125, 0.017669677734375, 0.446319580078125, 0.577117919921875, 0.925811767578125, 0.8180084228515625, 0.9180908203125, 0.72808837890625, 0.479888916015625, 0.329071044921875, 0.5270233154296875, 0.7617950439453125, 0.995758056640625, 0.2518310546875, 0.5730133056640625, 0.739227294921875, 0.81890869140625, 0.676788330078125, 0.0634613037109375, 0.787017822265625, 0.3134307861328125, 0.9955291748046875, 0.385711669921875, 0.7020111083984375, 0.2525177001953125, 0.1268157958984375, 0.4748992919921875, 0.9008636474609375, 0.522857666015625, 0.3490753173828125, 0.1591339111328125, 0.9205474853515625, 0.7203521728515625, 0.6591644287109375, 0.1929473876953125, 0.462066650390625, 0.4354248046875, 0.8440093994140625, 0.2637176513671875, 0.4669342041015625, 0.688873291015625, 0.7144927978515625, 0.3972625732421875, 0.8617401123046875, 0.8119049072265625, 0.195281982421875, 0.6984405517578125, 0.44671630859375, 0.9441375732421875, 0.2525634765625, 0.3310089111328125, 0.7769927978515625, 0.9616546630859375, 0.049102783203125, 0.4444580078125, 0.6244964599609375, 0.73876953125, 0.8037109375, 0.21929931640625, 0.0182952880859375, 0.5095672607421875, 0.3820648193359375, 0.3878173828125, 0.142242431640625, 0.400390625, 0.7258758544921875, 0.924713134765625, 0.9732666015625, 0.32269287109375, 0.5191650390625, 0.0109710693359375, 0.71185302734375, 0.330596923828125, 0.444915771484375, 0.8809814453125, 0.815155029296875, 0.457855224609375, 0.9517974853515625, 0.3203277587890625, 0.5015869140625, 0.76080322265625, 0.2885894775390625, 0.3464202880859375, 0.097442626953125, 0.548187255859375, 0.8534088134765625, 0.894500732421875, 0.18487548828125, 0.17822265625, 0.631561279296875, 0.557586669921875, 0.691619873046875, 0.09295654296875, 0.3743133544921875, 0.40966796875, 0.9474945068359375, 0.4466094970703125, 0.7131805419921875, 0.8035888671875, 0.4377899169921875, 0.0191650390625, 0.2709808349609375, 0.464630126953125, 0.0298004150390625, 0.288482666015625, 0.6111907958984375, 0.2334136962890625, 0.9741668701171875, 0.2936248779296875, 0.812225341796875, 0.0752410888671875, 0.842498779296875, 0.31719970703125, 0.691253662109375, 0.183837890625, 0.8035125732421875, 0.6454620361328125, 0.2223968505859375, 0.9221343994140625, 0.75994873046875, 0.93402099609375, 0.7913055419921875, 0.1851654052734375, 0.6674041748046875, 0.1061248779296875, 0.2720947265625, 0.2245025634765625, 0.0777435302734375, 0.8081817626953125, 0.714202880859375, 0.81378173828125, 0.9604949951171875, 0.6414794921875, 0.106292724609375, 0.4034423828125, 0.18603515625, 0.634002685546875, 0.277984619140625, 0.0666656494140625, 0.7631072998046875, 0.35821533203125, 0.6939239501953125, 0.114990234375, 0.596405029296875, 0.5645294189453125, 0.0010528564453125, 0.3021240234375, 0.511138916015625, 0.599090576171875, 0.8710479736328125, 0.74462890625, 0.72039794921875, 0.96270751953125, 0.6799774169921875, 0.1703643798828125, 0.298675537109375, 0.353271484375, 0.42474365234375, 0.5066680908203125, 0.171844482421875, 0.800048828125, 0.3720855712890625, 0.1009368896484375, 0.1086578369140625, 0.18975830078125, 0.928680419921875, 0.957366943359375, 0.0445404052734375, 0.6328582763671875, 0.0128631591796875, 0.3656768798828125, 0.087677001953125, 0.32464599609375, 0.29815673828125, 0.3031005859375, 0.7160797119140625, 0.99407958984375, 0.0301513671875, 0.5868377685546875, 0.58770751953125, 0.58001708984375, 0.07574462890625, 0.535064697265625, 0.0452880859375, 0.465911865234375, 0.55682373046875, 0.80975341796875, 0.046478271484375, 0.9559173583984375, 0.115264892578125, 0.5150909423828125, 0.0573577880859375, 0.21124267578125, 0.471435546875, 0.57794189453125, 0.1726531982421875, 0.3601226806640625, 0.057861328125, 0.833648681640625, 0.6158447265625, 0.1861724853515625, 0.027618408203125, 0.5596771240234375, 0.848297119140625, 0.9491424560546875, 0.7161407470703125, 0.3407745361328125, 0.2533111572265625, 0.4861907958984375, 0.0111236572265625, 0.81732177734375, 0.2242279052734375, 0.5152740478515625, 0.2023468017578125, 0.1639251708984375, 0.174713134765625, 0.3602447509765625, 0.0653228759765625, 0.522674560546875, 0.369781494140625, 0.392486572265625, 0.0313262939453125, 0.033935546875, 0.8523406982421875, 0.48516845703125, 0.759918212890625, 0.33477783203125, 0.5131683349609375, 0.920440673828125, 0.510955810546875, 0.179290771484375, 0.3160858154296875, 0.700897216796875, 0.64404296875, 0.2433624267578125, 0.110992431640625, 0.814453125, 0.6848907470703125, 0.322296142578125, 0.9871368408203125, 0.9000396728515625, 0.093231201171875, 0.0269927978515625, 0.2537994384765625, 0.3249664306640625, 0.5353851318359375, 0.6056060791015625, 0.981201171875, 0.2694854736328125, 0.1522064208984375, 0.525634765625, 0.7099761962890625, 0.0635223388671875, 0.4041595458984375, 0.3698577880859375, 0.173553466796875, 0.80865478515625, 0.284454345703125, 0.22216796875, 0.9246978759765625, 0.4581451416015625, 0.5563812255859375, 0.4073486328125, 0.2917327880859375, 0.0096435546875, 0.4029998779296875, 0.48431396484375, 0.75115966796875, 0.23956298828125, 0.9324951171875, 0.8617095947265625, 0.8873443603515625, 0.18548583984375, 0.146392822265625, 0.8980255126953125, 0.6421051025390625, 0.9821624755859375, 0.8263092041015625, 0.0504608154296875, 0.5619964599609375, 0.1614990234375, 0.480926513671875, 0.1775054931640625, 0.095001220703125, 0.2012939453125, 0.50775146484375, 0.442657470703125, 0.6707305908203125, 0.968719482421875, 0.092437744140625, 0.1767730712890625, 0.9804229736328125, 0.652557373046875, 0.7346954345703125, 0.998443603515625, 0.4598388671875, 0.40087890625, 0.91357421875, 0.4682464599609375, 0.9199676513671875, 0.3257598876953125, 0.0205230712890625, 0.4230499267578125, 0.1800689697265625, 0.83245849609375, 0.5630340576171875, 0.3902587890625, 0.9527435302734375, 0.61456298828125, 0.4389495849609375, 0.3220977783203125, 0.1161346435546875, 0.6811065673828125, 0.0645599365234375, 0.6629791259765625, 0.9139251708984375, 0.277587890625, 0.076202392578125, 0.9672698974609375, 0.030364990234375, 0.3242645263671875, 0.7659759521484375, 0.8555145263671875, 0.4840545654296875, 0.6703643798828125, 0.52154541015625, 0.1019439697265625, 0.669708251953125, 0.335235595703125, 0.668060302734375, 0.550628662109375, 0.11285400390625, 0.2743988037109375, 0.4945220947265625, 0.4703216552734375, 0.209625244140625, 0.78729248046875, 0.3587493896484375, 0.8860931396484375, 0.1254425048828125, 0.4219207763671875, 0.27716064453125, 0.62518310546875, 0.070953369140625, 0.4850006103515625, 0.2920379638671875, 0.4233245849609375, 0.3542633056640625, 0.1278076171875, 0.2639617919921875, 0.51092529296875, 0.4668121337890625, 0.5009002685546875, 0.0150909423828125, 0.2602996826171875, 0.2436981201171875, 0.44732666015625, 0.8090057373046875, 0.98968505859375, 0.2136383056640625, 0.539215087890625, 0.5436859130859375, 0.62371826171875, 0.5522613525390625, 0.1565093994140625, 0.29901123046875, 0.3789825439453125, 0.86761474609375, 0.4565277099609375, 0.6359710693359375, 0.477203369140625, 0.0381622314453125, 0.84527587890625, 0.0311279296875, 0.638885498046875, 0.2724761962890625, 0.5577545166015625, 0.1779022216796875, 0.9106597900390625, 0.57452392578125, 0.2438507080078125, 0.111297607421875, 0.0870361328125, 0.8874053955078125, 0.834930419921875, 0.8107452392578125, 0.007843017578125, 0.476043701171875, 0.840972900390625, 0.423248291015625, 0.84515380859375, 0.1263580322265625, 0.1471099853515625, 0.4402008056640625, 0.146636962890625, 0.244598388671875, 0.20196533203125, 0.1569366455078125, 0.7374267578125, 0.5063323974609375, 0.078094482421875, 0.8066558837890625, 0.054290771484375, 0.6562652587890625, 0.7600250244140625, 0.297515869140625, 0.84234619140625, 0.719146728515625, 0.2442169189453125, 0.1459503173828125, 0.4704132080078125, 0.649810791015625, 0.648101806640625, 0.432586669921875, 0.422027587890625, 0.8212127685546875, 0.2448577880859375, 0.0579681396484375, 0.868438720703125, 0.0594329833984375, 0.297027587890625, 0.1000213623046875, 0.846038818359375, 0.732177734375, 0.8216400146484375, 0.4905242919921875, 0.9073333740234375, 0.97021484375, 0.5693511962890625, 0.5761566162109375, 0.6522979736328125, 0.9702301025390625, 0.0270843505859375, 0.5834808349609375, 0.256011962890625, 0.8310699462890625, 0.3750762939453125, 0.7686920166015625, 0.71185302734375, 0.7826080322265625, 0.35546875, 0.335205078125, 0.2144012451171875, 0.9043426513671875, 0.9321441650390625, 0.863311767578125, 0.6636962890625, 0.157073974609375, 0.5107269287109375, 0.0620574951171875, 0.9169158935546875, 0.5896759033203125, 0.81378173828125, 0.3748626708984375, 0.4398345947265625, 0.6022491455078125, 0.40045166015625, 0.08441162109375, 0.872833251953125, 0.35650634765625, 0.317962646484375, 0.2638702392578125, 0.2437744140625, 0.08526611328125, 0.262359619140625, 0.3294525146484375, 0.9820404052734375, 0.5018768310546875, 0.9286956787109375, 0.7910003662109375, 0.2617645263671875, 0.635162353515625, 0.8309326171875, 0.917236328125, 0.1381072998046875, 0.3720550537109375, 0.4520263671875, 0.1741943359375, 0.8142242431640625, 0.364044189453125, 0.44073486328125, 0.6370849609375, 0.1130218505859375, 0.898712158203125, 0.9948577880859375, 0.186767578125, 0.916961669921875, 0.0027313232421875, 0.3650054931640625, 0.7965087890625, 0.401153564453125, 0.85919189453125, 0.3333587646484375, 0.9525299072265625, 0.3802947998046875, 0.026702880859375, 0.1676025390625, 0.3604888916015625, 0.3262786865234375, 0.0291900634765625, 0.506744384765625, 0.3773651123046875, 0.7461090087890625, 0.28240966796875, 0.307830810546875, 0.55517578125, 0.64520263671875, 0.89794921875, 0.79998779296875, 0.5884857177734375, 0.9013824462890625, 0.725921630859375, 0.87420654296875, 0.8967132568359375, 0.69403076171875, 0.6233673095703125, 0.4871063232421875, 0.808746337890625, 0.79962158203125, 0.3603973388671875, 0.4555816650390625, 0.95867919921875, 0.8517608642578125, 0.011749267578125, 0.1712799072265625, 0.4993896484375, 0.9760894775390625, 0.1651153564453125, 0.50665283203125, 0.378143310546875, 0.791839599609375, 0.48138427734375, 0.1802520751953125, 0.0450439453125, 0.4163665771484375, 0.5901031494140625, 0.1231842041015625, 0.34832763671875, 0.343414306640625, 0.4461669921875, 0.82647705078125, 0.8446044921875, 0.959228515625, 0.4116058349609375, 0.521270751953125, 0.5601806640625, 0.5304107666015625, 0.6310577392578125, 0.576263427734375, 0.98046875, 0.709930419921875, 0.0975189208984375, 0.667724609375, 0.15008544921875, 0.06060791015625, 0.7068328857421875, 0.1259002685546875, 0.209716796875, 0.66357421875, 0.6849212646484375, 0.345184326171875, 0.1535186767578125, 0.4061126708984375, 0.766693115234375, 0.3848876953125, 0.6450347900390625, 0.29791259765625, 0.5438995361328125, 0.0888824462890625, 0.9104156494140625, 0.8423919677734375, 0.6220550537109375, 0.947113037109375, 0.267425537109375, 0.7689056396484375, 0.563018798828125, 0.44964599609375, 0.56396484375, 0.591827392578125, 0.9737548828125, 0.5016021728515625, 0.1829833984375, 0.9941558837890625, 0.3474578857421875, 0.1279296875, 0.584747314453125, 0.0140533447265625, 0.2926025390625, 0.945343017578125, 0.1827545166015625, 0.524993896484375, 0.7513885498046875, 0.0002899169921875, 0.2053375244140625, 0.7996978759765625, 0.5770721435546875, 0.48846435546875, 0.17169189453125, 0.5545196533203125, 0.042205810546875, 0.831512451171875, 0.715301513671875, 0.670928955078125, 0.8140869140625, 0.808319091796875, 0.9305877685546875, 0.26263427734375, 0.42034912109375, 0.8287200927734375, 0.5297393798828125, 0.72576904296875, 0.873870849609375, 0.073944091796875, 0.165252685546875, 0.6963653564453125, 0.9948577880859375, 0.6654052734375, 0.5140380859375, 0.6002349853515625, 0.68914794921875, 0.1150054931640625, 0.6285247802734375, 0.498382568359375, 0.9132080078125, 0.9228668212890625, 0.01251220703125, 0.2806243896484375, 0.7861328125, 0.454345703125, 0.851898193359375, 0.30657958984375, 0.94671630859375, 0.1740875244140625, 0.322784423828125, 0.07049560546875, 0.7041015625, 0.06646728515625, 0.5490264892578125, 0.221588134765625, 0.558013916015625, 0.821380615234375, 0.291107177734375, 0.9219970703125, 0.172607421875, 0.504974365234375, 0.6053314208984375, 0.579132080078125, 0.662139892578125, 0.4362640380859375, 0.7197265625, 0.3518218994140625, 0.59320068359375, 0.6996917724609375, 0.6406097412109375, 0.587188720703125, 0.67156982421875, 0.2900390625, 0.863250732421875, 0.3668670654296875, 0.6822509765625, 0.5179443359375, 0.9543609619140625, 0.30181884765625, 0.9886627197265625, 0.2289276123046875, 0.52197265625, 0.2473602294921875, 0.58856201171875, 0.4393310546875, 0.9109344482421875, 0.3899383544921875, 0.4156646728515625, 0.121429443359375, 0.323150634765625, 0.9487762451171875, 0.9956512451171875, 0.0916595458984375, 0.3361663818359375, 0.9496917724609375, 0.83526611328125, 0.3005828857421875, 0.26763916015625, 0.923370361328125, 0.1436309814453125, 0.930908203125, 0.66656494140625, 0.998504638671875, 0.25604248046875, 0.50299072265625, 0.1625518798828125, 0.0612640380859375, 0.2459564208984375, 0.6951141357421875, 0.913665771484375, 0.9536895751953125, 0.2625579833984375, 0.8033447265625, 0.7269287109375, 0.4199371337890625, 0.810577392578125, 0.7698211669921875, 0.088897705078125, 0.8788299560546875, 0.0093536376953125, 0.1631622314453125, 0.16986083984375, 0.917724609375, 0.7734222412109375, 0.697235107421875, 0.9224395751953125, 0.0809783935546875, 0.302703857421875, 0.5085601806640625, 0.3341217041015625, 0.019378662109375, 0.512420654296875, 0.3658905029296875, 0.4198150634765625, 0.586273193359375, 0.588531494140625, 0.9967193603515625, 0.867828369140625, 0.1309356689453125, 0.7545928955078125, 0.192840576171875, 0.1429443359375, 0.300933837890625, 0.4380645751953125, 0.446502685546875, 0.355316162109375, 0.58221435546875, 0.8155975341796875, 0.0707244873046875, 0.4341278076171875, 0.47174072265625, 0.409698486328125, 0.2658233642578125, 0.000152587890625, 0.15087890625, 0.650634765625, 0.27520751953125, 0.9708099365234375, 0.123626708984375, 0.5534515380859375, 0.9192962646484375, 0.1381072998046875, 0.8809356689453125, 0.6616363525390625, 0.9658203125, 0.761383056640625, 0.4195556640625, 0.780120849609375, 0.1004791259765625, 0.9328765869140625, 0.449493408203125, 0.0283966064453125, 0.3325653076171875, 0.709808349609375, 0.4869537353515625, 0.9114837646484375, 0.409698486328125, 0.7401275634765625, 0.9760589599609375, 0.9674224853515625, 0.4604949951171875, 0.5027618408203125, 0.8434600830078125, 0.087066650390625, 0.256103515625, 0.508514404296875, 0.7849578857421875, 0.6000518798828125, 0.6014862060546875, 0.98748779296875, 0.6436920166015625, 0.6278533935546875, 0.8871002197265625, 0.9470977783203125, 0.6920928955078125, 0.0284271240234375, 0.832366943359375, 0.7566680908203125, 0.9854583740234375, 0.09417724609375, 0.38092041015625, 0.9848175048828125, 0.281005859375, 0.84149169921875, 0.1800384521484375, 0.9786376953125, 0.776153564453125, 0.117919921875, 0.583740234375, 0.6598052978515625, 0.8093414306640625, 0.105987548828125, 0.1745452880859375, 0.862091064453125, 0.03173828125, 0.923095703125, 0.51934814453125, 0.8298492431640625, 0.8070068359375, 0.858734130859375, 0.8496856689453125, 0.254119873046875, 0.9100799560546875, 0.5943603515625, 0.271026611328125, 0.198150634765625, 0.0379638671875, 0.983551025390625, 0.0444183349609375, 0.8274383544921875, 0.222625732421875, 0.2618255615234375, 0.000274658203125, 0.7205352783203125, 0.8824615478515625, 0.0801239013671875, 0.350860595703125, 0.10382080078125, 0.0699005126953125, 0.5994415283203125, 0.6021270751953125, 0.881103515625, 0.7318572998046875, 0.411163330078125, 0.6149139404296875, 0.4503021240234375, 0.79412841796875, 0.8465576171875, 0.7844085693359375, 0.1991424560546875, 0.7563629150390625, 0.814544677734375, 0.18609619140625, 0.36651611328125, 0.7017059326171875, 0.4122467041015625, 0.18212890625, 0.83135986328125, 0.8264923095703125, 0.834808349609375, 0.6599884033203125, 0.997650146484375, 0.113861083984375, 0.4878692626953125, 0.621795654296875, 0.6190643310546875, 0.4661102294921875, 0.6912841796875, 0.46331787109375, 0.8303070068359375, 0.5538177490234375, 0.0575103759765625, 0.912139892578125, 0.305999755859375, 0.6184539794921875, 0.5564117431640625, 0.8330230712890625, 0.8594818115234375, 0.5107574462890625, 0.8797607421875, 0.5703582763671875, 0.6231842041015625, 0.189971923828125, 0.4612884521484375, 0.879180908203125, 0.4000396728515625, 0.8123626708984375, 0.8722686767578125, 0.61199951171875, 0.8814239501953125, 0.8838348388671875, 0.9467620849609375, 0.6717987060546875, 0.2643280029296875, 0.817230224609375, 0.26513671875, 0.591064453125, 0.5204315185546875, 0.797515869140625, 0.2633056640625, 0.700469970703125, 0.8308563232421875, 0.81488037109375, 0.330535888671875, 0.9733428955078125, 0.9728546142578125, 0.2165374755859375, 0.881500244140625, 0.449859619140625, 0.6134185791015625, 0.9729156494140625, 0.9799957275390625, 0.0680999755859375, 0.0539093017578125, 0.1373748779296875, 0.600006103515625, 0.4784088134765625, 0.8881988525390625, 0.7597503662109375, 0.667724609375, 0.5737457275390625, 0.2963409423828125, 0.023834228515625, 0.8400115966796875, 0.1273651123046875, 0.7796173095703125, 0.67572021484375, 0.1602935791015625, 0.1410980224609375, 0.265716552734375, 0.9159698486328125, 0.6807708740234375, 0.0821990966796875, 0.73638916015625, 0.1915740966796875, 0.61590576171875, 0.7000885009765625, 0.3110504150390625, 0.791259765625, 0.2252197265625, 0.9564666748046875, 0.2442779541015625, 0.2337188720703125, 0.591583251953125, 0.4318084716796875, 0.0987548828125, 0.1800689697265625, 0.202392578125, 0.51458740234375, 0.276397705078125, 0.595123291015625, 0.6229400634765625, 0.9402923583984375, 0.0095367431640625, 0.15350341796875, 0.434326171875, 0.42779541015625, 0.59552001953125, 0.8406982421875, 0.3014984130859375, 0.556854248046875, 0.241790771484375, 0.689697265625, 0.6779937744140625, 0.27484130859375, 0.4579315185546875, 0.309783935546875, 0.490936279296875, 0.5862274169921875, 0.9722900390625, 0.1045074462890625, 0.567596435546875, 0.7400360107421875, 0.5130462646484375, 0.9455718994140625, 0.7162017822265625, 0.584259033203125, 0.1597442626953125, 0.5724945068359375, 0.7042694091796875, 0.9939422607421875, 0.714691162109375, 0.279937744140625, 0.1674957275390625, 0.7311248779296875, 0.9606781005859375, 0.934600830078125, 0.45635986328125, 0.8982391357421875, 0.3287353515625, 0.4831390380859375, 0.3303680419921875, 0.7044525146484375, 0.0069580078125, 0.4122161865234375, 0.35601806640625, 0.730926513671875, 0.479583740234375, 0.6479949951171875, 0.708404541015625, 0.4783782958984375, 0.285308837890625, 0.8260040283203125, 0.2248077392578125, 0.4945831298828125, 0.810455322265625, 0.50592041015625, 0.5850982666015625, 0.193023681640625, 0.220489501953125, 0.083984375, 0.4803466796875, 0.4323883056640625, 0.220672607421875, 0.57965087890625, 0.32452392578125, 0.5374603271484375, 0.1421966552734375, 0.8255462646484375, 0.3753662109375, 0.17791748046875, 0.7508544921875, 0.640899658203125, 0.51007080078125, 0.8516998291015625, 0.2240142822265625, 0.84979248046875, 0.742340087890625, 0.45843505859375, 0.9687347412109375, 0.53515625, 0.177154541015625, 0.99267578125, 0.85540771484375, 0.9042816162109375, 0.99761962890625, 0.7096405029296875, 0.95013427734375, 0.9009552001953125, 0.620574951171875, 0.511871337890625, 0.3661651611328125, 0.1486358642578125, 0.990478515625, 0.0526580810546875, 0.6215057373046875, 0.32940673828125, 0.17987060546875, 0.2250518798828125, 0.855865478515625, 0.3184967041015625, 0.247039794921875, 0.9935302734375, 0.8089447021484375, 0.5433502197265625, 0.5298004150390625, 0.16473388671875, 0.824554443359375, 0.2279052734375, 0.0988922119140625, 0.78985595703125, 0.73480224609375, 0.22833251953125, 0.625732421875, 0.009857177734375, 0.7623748779296875, 0.3749847412109375, 0.0047149658203125, 0.42816162109375, 0.1688232421875, 0.821258544921875, 0.800262451171875, 0.8339385986328125, 0.103271484375, 0.655731201171875, 0.7311553955078125, 0.4492340087890625, 0.7548675537109375, 0.918914794921875, 0.124542236328125, 0.955596923828125, 0.4276580810546875, 0.9771575927734375, 0.768218994140625, 0.4423675537109375, 0.454498291015625, 0.6086883544921875, 0.32757568359375, 0.637847900390625, 0.0119476318359375, 0.941650390625, 0.906707763671875, 0.371002197265625, 0.67120361328125, 0.140289306640625, 0.9195556640625, 0.7226715087890625, 0.1835174560546875, 0.2218780517578125, 0.71173095703125, 0.712493896484375, 0.0643463134765625, 0.40728759765625, 0.0446624755859375, 0.939453125, 0.9140777587890625, 0.387939453125, 0.277252197265625, 0.868743896484375, 0.5837554931640625, 0.9012451171875, 0.9903717041015625, 0.403594970703125, 0.814788818359375, 0.5390625, 0.68048095703125, 0.4699249267578125, 0.86968994140625, 0.14080810546875, 0.591064453125, 0.6390838623046875, 0.20947265625, 0.38641357421875, 0.546173095703125, 0.069793701171875, 0.6552734375, 0.3608856201171875, 0.3551788330078125, 0.45599365234375, 0.358306884765625, 0.496337890625, 0.2555694580078125, 0.07916259765625, 0.45281982421875, 0.46441650390625, 0.146820068359375, 0.87451171875, 0.051727294921875, 0.441619873046875, 0.38238525390625, 0.882049560546875, 0.050079345703125, 0.627899169921875, 0.056060791015625, 0.2084197998046875, 0.758758544921875, 0.763885498046875, 0.6888275146484375, 0.2572174072265625, 0.72930908203125, 0.0113067626953125, 0.629302978515625, 0.4906463623046875, 0.5435943603515625, 0.4471893310546875, 0.950836181640625, 0.776947021484375, 0.171722412109375, 0.1510009765625, 0.483489990234375, 0.336395263671875, 0.144805908203125, 0.522369384765625, 0.7464599609375, 0.3562164306640625, 0.549713134765625, 0.0692291259765625, 0.3680419921875, 0.57855224609375, 0.6145782470703125, 0.466888427734375, 0.0376434326171875, 0.5229949951171875, 0.2525787353515625, 0.05828857421875, 0.0001220703125, 0.306640625, 0.46905517578125, 0.000396728515625, 0.3337860107421875, 0.229339599609375, 0.710113525390625, 0.868804931640625, 0.8862457275390625, 0.576446533203125, 0.227752685546875, 0.0878143310546875, 0.5226287841796875, 0.119110107421875, 0.098663330078125, 0.4911651611328125, 0.423370361328125, 0.1234283447265625, 0.190826416015625, 0.5927581787109375, 0.5583343505859375, 0.9281768798828125, 0.449615478515625, 0.1437225341796875, 0.91339111328125, 0.5115509033203125, 0.2660369873046875, 0.196014404296875, 0.1053009033203125, 0.8307037353515625, 0.787200927734375, 0.2606353759765625, 0.2697296142578125, 0.56103515625, 0.61737060546875, 0.7903900146484375, 0.7251129150390625, 0.5436553955078125, 0.2250213623046875, 0.6233367919921875, 0.0238800048828125, 0.5083465576171875, 0.9593505859375, 0.457763671875, 0.6366424560546875, 0.8640594482421875, 0.8618316650390625, 0.19366455078125, 0.3707427978515625, 0.7306976318359375, 0.0148773193359375, 0.2418670654296875, 0.9309539794921875, 0.4759979248046875, 0.1625213623046875, 0.933349609375, 0.5961761474609375, 0.9680938720703125, 0.96240234375, 0.6773223876953125, 0.953521728515625, 0.6549224853515625, 0.0343017578125, 0.0003814697265625, 0.7334136962890625, 0.7221527099609375, 0.22607421875, 0.2049560546875, 0.5709381103515625, 0.172637939453125, 0.773773193359375, 0.5529327392578125, 0.7381744384765625, 0.6679534912109375, 0.1275634765625, 0.0401458740234375, 0.292449951171875, 0.9862518310546875, 0.00860595703125, 0.9751434326171875, 0.666595458984375, 0.26348876953125, 0.930572509765625, 0.713165283203125, 0.7801361083984375, 0.17352294921875, 0.9403228759765625, 0.159393310546875, 0.691864013671875, 0.861846923828125, 0.876708984375, 0.1941986083984375, 0.8217926025390625, 0.4484405517578125, 0.218963623046875, 0.9552154541015625, 0.3439788818359375, 0.7056884765625, 0.5242767333984375, 0.5709075927734375, 0.5382843017578125, 0.87158203125, 0.2343902587890625, 0.29144287109375, 0.4893951416015625, 0.11505126953125, 0.2636260986328125, 0.6517333984375, 0.7156524658203125, 0.067779541015625, 0.0494384765625, 0.5468597412109375, 0.2340850830078125, 0.1273956298828125, 0.865020751953125, 0.4750518798828125, 0.355010986328125, 0.610198974609375, 0.332733154296875, 0.9457855224609375, 0.3563690185546875, 0.3034820556640625, 0.35577392578125, 0.4180145263671875, 0.017791748046875, 0.38922119140625, 0.8792266845703125, 0.3278350830078125, 0.7629547119140625, 0.8687286376953125, 0.95281982421875, 0.8841094970703125, 0.48126220703125, 0.515106201171875, 0.119140625, 0.0220947265625, 0.871917724609375, 0.4684600830078125, 0.905426025390625, 0.4675445556640625, 0.7384796142578125, 0.797943115234375, 0.851287841796875, 0.2330474853515625, 0.9061279296875, 0.7480010986328125, 0.369537353515625, 0.7081756591796875, 0.292999267578125, 0.301971435546875, 0.1255950927734375, 0.634918212890625, 0.90606689453125, 0.4879913330078125, 0.6472320556640625, 0.1715850830078125, 0.07568359375, 0.669586181640625, 0.85418701171875, 0.9761199951171875, 0.0462493896484375, 0.3597564697265625, 0.1385345458984375, 0.2257843017578125, 0.248138427734375, 0.9489593505859375, 0.713165283203125, 0.7974090576171875, 0.6679840087890625, 0.832183837890625, 0.0359344482421875, 0.0025787353515625, 0.9885711669921875, 0.054840087890625, 0.0682525634765625, 0.912567138671875, 0.494903564453125, 0.2547607421875, 0.3706207275390625, 0.408905029296875, 0.858062744140625, 0.2085113525390625, 0.0984954833984375, 0.887115478515625, 0.467193603515625, 0.9062347412109375, 0.3221282958984375, 0.3321990966796875, 0.1254425048828125, 0.1474151611328125, 0.16485595703125, 0.3346405029296875, 0.4960174560546875, 0.6330108642578125, 0.5946197509765625, 0.74359130859375, 0.675689697265625, 0.7268218994140625, 0.5374298095703125, 0.408935546875, 0.208831787109375, 0.7220458984375, 0.046478271484375, 0.8280487060546875, 0.47613525390625, 0.0087738037109375, 0.9361724853515625, 0.21490478515625, 0.9983062744140625, 0.4366912841796875, 0.6246795654296875, 0.49383544921875, 0.7853851318359375, 0.841278076171875, 0.85888671875, 0.8579864501953125, 0.830474853515625, 0.8365936279296875, 0.9377593994140625, 0.563812255859375, 0.6098785400390625, 0.031097412109375, 0.684814453125, 0.537200927734375, 0.415252685546875, 0.1463165283203125, 0.3516387939453125, 0.291351318359375, 0.054931640625, 0.969482421875, 0.7154388427734375, 0.06243896484375, 0.692169189453125, 0.3655548095703125, 0.1402740478515625, 0.1349945068359375, 0.533782958984375, 0.599151611328125, 0.568389892578125, 0.7540283203125, 0.7942962646484375, 0.862091064453125, 0.3977813720703125, 0.382354736328125, 0.6169586181640625, 0.9133453369140625, 0.2217559814453125, 0.95068359375, 0.1685028076171875, 0.77923583984375, 0.9740142822265625, 0.353271484375, 0.22613525390625, 0.6932220458984375, 0.3332672119140625, 0.935089111328125, 0.2204742431640625, 0.452117919921875, 0.404205322265625, 0.9001312255859375, 0.7043609619140625, 0.89044189453125, 0.3995819091796875, 0.7945556640625, 0.3162078857421875, 0.51971435546875, 0.437957763671875, 0.3680572509765625, 0.5278472900390625, 0.6544189453125, 0.1342926025390625, 0.3490142822265625, 0.47406005859375, 0.5224456787109375, 0.57794189453125, 0.004241943359375, 0.0281524658203125, 0.1942901611328125, 0.0429534912109375, 0.421966552734375, 0.7995147705078125, 0.9923248291015625, 0.518218994140625, 0.4094390869140625, 0.82135009765625, 0.7731475830078125, 0.2827301025390625, 0.27685546875, 0.6678314208984375, 0.4794464111328125, 0.0964202880859375, 0.7126007080078125, 0.7487945556640625, 0.3946533203125, 0.5012359619140625, 0.9244842529296875, 0.3731536865234375, 0.45062255859375, 0.450347900390625, 0.270782470703125, 0.995513916015625, 0.4792022705078125, 0.4544677734375, 0.5205841064453125, 0.5105743408203125, 0.715087890625, 0.8461151123046875, 0.33331298828125, 0.6127166748046875, 0.2151641845703125, 0.3472900390625, 0.59808349609375, 0.5625, 0.2593536376953125, 0.1395721435546875, 0.1018218994140625, 0.042144775390625, 0.784912109375, 0.1358489990234375, 0.3778076171875, 0.954010009765625, 0.2128143310546875, 0.4885406494140625, 0.9876556396484375, 0.0317230224609375, 0.984130859375, 0.267486572265625, 0.04998779296875, 0.797332763671875, 0.8224945068359375, 0.4001922607421875, 0.3546295166015625, 0.62109375, 0.333251953125, 0.363555908203125, 0.9021453857421875, 0.3238525390625, 0.8055877685546875, 0.3341064453125, 0.322265625, 0.7468109130859375, 0.5577850341796875, 0.26373291015625, 0.9402618408203125, 0.0891876220703125, 0.151397705078125, 0.2769927978515625, 0.482757568359375, 0.3439178466796875, 0.9304351806640625, 0.9126129150390625, 0.6968994140625, 0.3915863037109375, 0.9964447021484375, 0.788787841796875, 0.8394622802734375, 0.4186553955078125, 0.6468353271484375, 0.187042236328125, 0.7198486328125, 0.6882781982421875, 0.458221435546875, 0.20751953125, 0.9317474365234375, 0.9330596923828125, 0.40985107421875, 0.1011962890625, 0.2521820068359375, 0.0338897705078125, 0.586456298828125, 0.96453857421875, 0.64190673828125, 0.953857421875, 0.7674713134765625, 0.103790283203125, 0.9822235107421875, 0.9919891357421875, 0.6163177490234375, 0.6995697021484375, 0.07861328125, 0.0481719970703125, 0.21636962890625, 0.099945068359375, 0.401702880859375, 0.6668853759765625, 0.7854766845703125, 0.9932708740234375, 0.299835205078125, 0.77325439453125, 0.0799407958984375, 0.941436767578125, 0.2920684814453125, 0.86651611328125, 0.063934326171875, 0.5628814697265625, 0.4740142822265625, 0.4698486328125, 0.1399688720703125, 0.2516937255859375, 0.2675933837890625, 0.218841552734375, 0.7412261962890625, 0.506378173828125, 0.70111083984375, 0.7538299560546875, 0.5238037109375, 0.71026611328125, 0.6086578369140625, 0.7697296142578125, 0.9723663330078125, 0.8294525146484375, 0.503173828125, 0.820648193359375, 0.43426513671875, 0.546295166015625, 0.6580810546875, 0.0205078125, 0.2456512451171875, 0.697296142578125, 0.789794921875, 0.3255157470703125, 0.125335693359375, 0.1495208740234375, 0.3520050048828125, 0.11627197265625, 0.996185302734375, 0.203125, 0.0048675537109375, 0.9882354736328125, 0.1345062255859375, 0.564910888671875, 0.2460784912109375, 0.9855194091796875, 0.9284210205078125, 0.05682373046875, 0.842681884765625, 0.3474884033203125, 0.222686767578125, 0.9329833984375, 0.72430419921875, 0.7796783447265625, 0.6020355224609375, 0.7907562255859375, 0.858154296875, 0.951507568359375, 0.5500640869140625, 0.7963714599609375, 0.939605712890625, 0.763763427734375, 0.1435546875, 0.10186767578125, 0.9237823486328125, 0.7952880859375, 0.291595458984375, 0.3031768798828125, 0.65899658203125, 0.759185791015625, 0.6580047607421875, 0.1143341064453125, 0.6417999267578125, 0.087860107421875, 0.3653717041015625, 0.189697265625, 0.57867431640625, 0.7807769775390625, 0.113739013671875, 0.7769012451171875, 0.5348358154296875, 0.9299774169921875, 0.4202423095703125, 0.0381622314453125, 0.95770263671875, 0.7679290771484375, 0.8633270263671875, 0.2121429443359375, 0.4953460693359375, 0.7798614501953125, 0.0210113525390625, 0.7517547607421875, 0.60479736328125, 0.564544677734375, 0.2557220458984375, 0.079986572265625, 0.4791107177734375, 0.9696197509765625, 0.3106689453125, 0.896942138671875, 0.361083984375, 0.4070281982421875, 0.797882080078125, 0.442230224609375, 0.44476318359375, 0.0088958740234375, 0.0033111572265625, 0.916656494140625, 0.9837646484375, 0.240570068359375, 0.349639892578125, 0.6580657958984375, 0.9998779296875, 0.0774078369140625, 0.7341766357421875, 0.7088623046875, 0.570037841796875, 0.0437469482421875, 0.3318634033203125, 0.0550537109375, 0.76324462890625, 0.92938232421875, 0.1065216064453125, 0.9412384033203125, 0.72454833984375, 0.817596435546875, 0.2814178466796875, 0.371490478515625, 0.95947265625, 0.1831817626953125, 0.3742523193359375, 0.3826904296875, 0.861083984375, 0.6502685546875, 0.038970947265625, 0.73333740234375, 0.1178741455078125, 0.9244537353515625, 0.5124053955078125, 0.6176910400390625, 0.87396240234375, 0.8814239501953125, 0.007049560546875, 0.3448638916015625, 0.4371490478515625, 0.81292724609375, 0.113616943359375, 0.827362060546875, 0.003173828125, 0.922119140625, 0.2520294189453125, 0.8362579345703125, 0.2641448974609375, 0.3134307861328125, 0.02288818359375, 0.1821441650390625, 0.050689697265625, 0.11724853515625, 0.2096710205078125, 0.83612060546875, 0.351715087890625, 0.4577789306640625, 0.573516845703125, 0.965240478515625, 0.097015380859375, 0.5550689697265625, 0.5771636962890625, 0.591827392578125, 0.6302337646484375, 0.6676025390625, 0.701385498046875, 0.364654541015625, 0.9801177978515625, 0.9024200439453125, 0.5795135498046875, 0.3697357177734375, 0.1057281494140625, 0.7754058837890625, 0.6618804931640625, 0.81573486328125, 0.38134765625, 0.1421661376953125, 0.91015625, 0.9703521728515625, 0.3384246826171875, 0.170867919921875, 0.1365814208984375, 0.324676513671875, 0.7737579345703125, 0.049957275390625, 0.9136962890625, 0.7998199462890625, 0.670928955078125, 0.8528289794921875, 0.740936279296875, 0.0799407958984375, 0.0478668212890625, 0.464263916015625, 0.98785400390625, 0.8161773681640625, 0.7834625244140625, 0.2657318115234375, 0.1285400390625, 0.7269744873046875, 0.440155029296875, 0.2507171630859375, 0.8931427001953125, 0.2960968017578125, 0.692474365234375, 0.058746337890625, 0.7562103271484375, 0.5970306396484375, 0.061859130859375, 0.3756256103515625, 0.935455322265625, 0.0393218994140625, 0.4842681884765625, 0.4930572509765625, 0.3031768798828125, 0.51483154296875, 0.777618408203125, 0.0358123779296875, 0.5897064208984375, 0.8446197509765625, 0.9205169677734375, 0.3069610595703125, 0.681793212890625, 0.005523681640625, 0.74420166015625, 0.5926055908203125, 0.737030029296875, 0.007476806640625, 0.8360137939453125, 0.09765625, 0.754730224609375, 0.0779876708984375, 0.9641876220703125, 0.005096435546875, 0.775177001953125, 0.1124267578125, 0.8760528564453125, 0.60797119140625, 0.93658447265625, 0.6672821044921875, 0.42425537109375, 0.299835205078125, 0.4573211669921875, 0.05816650390625, 0.87646484375, 0.7377777099609375, 0.1951446533203125, 0.8684234619140625, 0.9501800537109375, 0.4232330322265625, 0.586822509765625, 0.2926483154296875, 0.313323974609375, 0.441925048828125, 0.98614501953125, 0.1744842529296875, 0.190826416015625, 0.7625885009765625, 0.228485107421875, 0.367218017578125, 0.259490966796875, 0.916900634765625, 0.6679840087890625, 0.61273193359375, 0.1262664794921875, 0.6305389404296875, 0.6632537841796875, 0.429290771484375, 0.6641082763671875, 0.2381744384765625, 0.248016357421875, 0.1696624755859375, 0.1254425048828125, 0.0945281982421875, 0.9752655029296875, 0.45123291015625, 0.749053955078125, 0.6322479248046875, 0.425933837890625, 0.6647186279296875, 0.1666107177734375, 0.829925537109375, 0.5206756591796875, 0.450653076171875, 0.6942596435546875, 0.4282073974609375, 0.9127960205078125, 0.46661376953125, 0.76165771484375, 0.3954315185546875, 0.6386566162109375, 0.0329437255859375, 0.9835968017578125, 0.956817626953125, 0.2858734130859375, 0.207763671875, 0.6851348876953125, 0.1072235107421875, 0.8585205078125, 0.1153717041015625, 0.217559814453125, 0.9747314453125, 0.605682373046875, 0.9037017822265625, 0.4829559326171875, 0.498931884765625, 0.3913726806640625, 0.92547607421875, 0.8660430908203125, 0.9615936279296875, 0.4999847412109375, 0.626739501953125, 0.101806640625, 0.3052215576171875, 0.005584716796875, 0.072021484375, 0.684478759765625, 0.935546875, 0.8910369873046875, 0.4698944091796875, 0.4601898193359375, 0.96942138671875, 0.0926361083984375, 0.815338134765625, 0.9761199951171875, 0.4730987548828125, 0.7854156494140625, 0.9927215576171875, 0.8431854248046875, 0.983245849609375, 0.9291534423828125, 0.4676666259765625, 0.1832733154296875, 0.76837158203125, 0.15301513671875, 0.4760284423828125, 0.9760284423828125, 0.614715576171875, 0.9965972900390625, 0.2398223876953125, 0.1523284912109375, 0.5815277099609375, 0.8740234375, 0.7330169677734375, 0.3979949951171875, 0.25616455078125, 0.485565185546875, 0.788970947265625, 0.3274383544921875, 0.9495849609375, 0.0535888671875, 0.542724609375, 0.107025146484375, 0.2810821533203125, 0.328765869140625, 0.1099853515625, 0.6648406982421875, 0.252777099609375, 0.236297607421875, 0.862396240234375, 0.3482513427734375, 0.0609130859375, 0.300079345703125, 0.311248779296875, 0.85198974609375, 0.885955810546875, 0.453155517578125, 0.331268310546875, 0.3153076171875, 0.9884185791015625, 0.680267333984375, 0.1058349609375, 0.463836669921875, 0.7884063720703125, 0.2097625732421875, 0.54461669921875, 0.4944000244140625, 0.3417205810546875, 0.8768157958984375, 0.2713165283203125, 0.1866607666015625, 0.6142730712890625, 0.1865386962890625, 0.2742462158203125, 0.920654296875, 0.766632080078125, 0.332489013671875, 0.551300048828125, 0.6981964111328125, 0.18121337890625, 0.98712158203125, 0.5607147216796875, 0.4878387451171875, 0.555084228515625, 0.9674224853515625, 0.3700103759765625, 0.23590087890625, 0.3027801513671875, 0.8463134765625, 0.83905029296875, 0.935028076171875, 0.7382965087890625, 0.5735321044921875, 0.131622314453125, 0.899261474609375, 0.97735595703125, 0.6331787109375, 0.652008056640625, 0.040557861328125, 0.894866943359375, 0.5637969970703125, 0.78082275390625, 0.1419525146484375, 0.26580810546875, 0.2901458740234375, 0.374420166015625, 0.00604248046875, 0.7849578857421875, 0.521820068359375, 0.8477935791015625, 0.775146484375, 0.116546630859375, 0.246429443359375, 0.3477630615234375, 0.2785491943359375, 0.9326019287109375, 0.809661865234375, 0.064849853515625, 0.9539794921875, 0.394683837890625, 0.1818084716796875, 0.824066162109375, 0.6889801025390625, 0.5177154541015625, 0.7262115478515625, 0.754669189453125, 0.155670166015625, 0.7128143310546875, 0.264495849609375, 0.48651123046875, 0.8046875, 0.638458251953125, 0.9145965576171875, 0.3179168701171875, 0.67083740234375, 0.2945404052734375, 0.752685546875, 0.365081787109375, 0.3342132568359375, 0.117706298828125, 0.5573272705078125, 0.508453369140625, 0.8468017578125, 0.9787750244140625, 0.6836090087890625, 0.856292724609375, 0.118316650390625, 0.90478515625, 0.1448974609375, 0.789825439453125, 0.1092987060546875, 0.407440185546875, 0.65167236328125, 0.8882904052734375, 0.6982269287109375, 0.8637847900390625, 0.67083740234375, 0.4414825439453125, 0.0753173828125, 0.8420562744140625, 0.718658447265625, 0.26934814453125, 0.2224273681640625, 0.7277069091796875, 0.2019805908203125, 0.60528564453125, 0.093414306640625, 0.317718505859375, 0.4971160888671875, 0.875640869140625, 0.8987274169921875, 0.33575439453125, 0.4582977294921875, 0.3602447509765625, 0.2897491455078125, 0.36224365234375, 0.31732177734375, 0.7889556884765625, 0.515838623046875, 0.01287841796875, 0.362457275390625, 0.44000244140625, 0.6201934814453125, 0.307647705078125, 0.733489990234375, 0.1672210693359375, 0.427398681640625, 0.3734130859375, 0.7437896728515625, 0.7252044677734375, 0.163909912109375, 0.892852783203125, 0.66046142578125, 0.3554229736328125, 0.6113433837890625, 0.3732147216796875, 0.569793701171875, 0.6125030517578125, 0.367767333984375, 0.417022705078125, 0.9792327880859375, 0.26806640625, 0.86883544921875, 0.6390228271484375, 0.76373291015625, 0.3912811279296875, 0.6724853515625, 0.41943359375, 0.0578155517578125, 0.9444427490234375, 0.57305908203125, 0.3416748046875, 0.488372802734375, 0.086578369140625, 0.6912841796875, 0.4115142822265625, 0.0914306640625, 0.2478790283203125, 0.218597412109375, 0.6549224853515625, 0.743072509765625, 0.672088623046875, 0.5297393798828125, 0.931854248046875, 0.2677764892578125, 0.7013397216796875, 0.1908111572265625, 0.6555023193359375, 0.5903472900390625, 0.561492919921875, 0.7882080078125, 0.9861907958984375, 0.2683868408203125, 0.2338409423828125, 0.330474853515625, 0.4951171875, 0.7176666259765625, 0.256744384765625, 0.06170654296875, 0.5579681396484375, 0.699676513671875, 0.918701171875, 0.2366943359375, 0.6011962890625, 0.7503509521484375, 0.87176513671875, 0.7836761474609375, 0.3551788330078125, 0.1880035400390625, 0.8833160400390625, 0.124053955078125, 0.9925384521484375, 0.528564453125, 0.6626129150390625, 0.9182281494140625, 0.5442962646484375, 0.521331787109375, 0.3837432861328125, 0.586761474609375, 0.20654296875, 0.581298828125, 0.54833984375, 0.391448974609375, 0.377899169921875, 0.451690673828125, 0.8419036865234375, 0.454132080078125, 0.211029052734375, 0.74176025390625, 0.6188507080078125, 0.845458984375, 0.054412841796875, 0.048187255859375, 0.2214202880859375, 0.9638519287109375, 0.2384033203125, 0.35052490234375, 0.472564697265625, 0.590484619140625, 0.63836669921875, 0.50927734375, 0.1360321044921875, 0.3629302978515625, 0.1018218994140625, 0.8783721923828125, 0.4423980712890625, 0.7767181396484375, 0.9384307861328125, 0.196441650390625, 0.8589630126953125, 0.304656982421875, 0.9021759033203125, 0.357025146484375, 0.370635986328125, 0.9696807861328125, 0.2554168701171875, 0.28887939453125, 0.278839111328125, 0.7411346435546875, 0.9649658203125, 0.46759033203125, 0.81683349609375, 0.9698028564453125, 0.4077606201171875, 0.6182403564453125, 0.815216064453125, 0.0037994384765625, 0.890838623046875, 0.8009033203125, 0.892547607421875, 0.88653564453125, 0.2029876708984375, 0.693511962890625, 0.53021240234375, 0.9490509033203125, 0.1884918212890625, 0.7432861328125, 0.3928985595703125, 0.3501739501953125, 0.017578125, 0.037628173828125, 0.5227813720703125, 0.0747222900390625, 0.0816497802734375, 0.954254150390625, 0.6703643798828125, 0.660675048828125, 0.1580047607421875, 0.6503753662109375, 0.4146270751953125, 0.46502685546875, 0.6838226318359375, 0.6780242919921875, 0.5230560302734375, 0.50732421875, 0.3929290771484375, 0.711944580078125, 0.7647857666015625, 0.409088134765625, 0.61065673828125, 0.3537139892578125, 0.4837799072265625, 0.190643310546875, 0.531280517578125, 0.4060821533203125, 0.10052490234375, 0.828460693359375, 0.138946533203125, 0.5239410400390625, 0.034637451171875, 0.4743804931640625, 0.680206298828125, 0.55841064453125, 0.78594970703125, 0.4345855712890625, 0.4792633056640625, 0.4133758544921875, 0.1215972900390625, 0.574005126953125, 0.5224151611328125, 0.6989593505859375, 0.644256591796875, 0.9881439208984375, 0.73126220703125, 0.2403106689453125, 0.014923095703125, 0.1058197021484375, 0.49151611328125, 0.5655059814453125, 0.7450408935546875, 0.29083251953125, 0.846832275390625, 6.103515625e-05, 0.2854766845703125, 0.9048614501953125, 0.99285888671875, 0.6922454833984375, 0.6488800048828125, 0.013153076171875, 0.6972198486328125, 0.0539093017578125, 0.4715728759765625, 0.0865936279296875, 0.8410491943359375, 0.3198089599609375, 0.7223663330078125, 0.91302490234375, 0.3916778564453125, 0.3488006591796875, 0.18072509765625, 0.3344268798828125, 0.2792816162109375, 0.430511474609375, 0.08209228515625, 0.5677490234375, 0.740875244140625, 0.46038818359375, 0.662811279296875, 0.3736419677734375, 0.2821044921875, 0.07940673828125, 0.8420562744140625, 0.7516326904296875, 0.342010498046875, 0.7529449462890625, 0.6914520263671875, 0.4224090576171875, 0.0312652587890625, 0.7132568359375, 0.440277099609375, 0.6719970703125, 0.7476348876953125, 0.28094482421875, 0.0946197509765625, 0.063995361328125, 0.1410675048828125, 0.5379180908203125, 0.90594482421875, 0.2207489013671875, 0.6587371826171875, 0.8145904541015625, 0.6691741943359375, 0.7215118408203125, 0.814697265625, 0.77313232421875, 0.6250762939453125, 0.6527252197265625, 0.235443115234375, 0.29644775390625, 0.7835693359375, 0.510162353515625, 0.164520263671875, 0.8854522705078125, 0.583953857421875, 0.8759002685546875, 0.4669952392578125, 0.354949951171875, 0.691650390625, 0.1065673828125, 0.8979644775390625, 0.7788848876953125, 0.2114715576171875, 0.968719482421875, 0.578521728515625, 0.5624847412109375, 0.9588623046875, 0.6179656982421875, 0.5817413330078125, 0.270111083984375, 0.4788360595703125, 0.266754150390625, 0.9755096435546875, 0.004852294921875, 0.6922607421875, 0.67010498046875, 0.6187286376953125, 0.0484771728515625, 0.4680023193359375, 0.834808349609375, 0.069793701171875, 0.3991241455078125, 0.9598236083984375, 0.618499755859375, 0.0808563232421875, 0.51934814453125, 0.4929962158203125, 0.0313568115234375, 0.9341583251953125, 0.1380615234375, 0.7524261474609375, 0.55047607421875, 0.28192138671875, 0.35040283203125, 0.2829742431640625, 0.441314697265625, 0.19317626953125, 0.3416290283203125, 0.1824493408203125, 0.4867401123046875, 0.29833984375, 0.05902099609375, 0.008880615234375, 0.8666839599609375, 0.22747802734375, 0.1923828125, 0.079345703125, 0.4275360107421875, 0.82147216796875, 0.171295166015625, 0.6329193115234375, 0.2996826171875, 0.2464752197265625, 0.9954833984375, 0.4659576416015625, 0.813507080078125, 0.579315185546875, 0.796173095703125, 0.0715484619140625, 0.754669189453125, 0.2331390380859375, 0.5977935791015625, 0.42559814453125, 0.7353515625, 0.15643310546875, 0.2565765380859375, 0.7959442138671875, 0.260986328125, 0.8822174072265625, 0.4925994873046875, 0.09051513671875, 0.7033233642578125, 0.01678466796875, 0.7234039306640625, 0.616851806640625, 0.42144775390625, 0.90606689453125, 0.119232177734375, 0.49102783203125, 0.1021728515625, 0.0777740478515625, 0.5268096923828125, 0.139892578125, 0.3661956787109375, 0.4696502685546875, 0.5099029541015625, 0.030487060546875, 0.8689422607421875, 0.8346405029296875, 0.262359619140625, 0.0708770751953125, 0.40716552734375, 0.1551055908203125, 0.92156982421875, 0.3474578857421875, 0.4776611328125, 0.3866729736328125, 0.5717926025390625, 0.1405029296875, 0.3365631103515625, 0.504547119140625, 0.3556976318359375, 0.68890380859375, 0.1692962646484375, 0.6229400634765625, 0.895904541015625, 0.48150634765625, 0.7124786376953125, 0.8692474365234375, 0.9018402099609375, 0.47607421875, 0.5717315673828125, 0.0404815673828125, 0.6576690673828125, 0.47991943359375, 0.2169647216796875, 0.40509033203125, 0.8402099609375, 0.4541473388671875, 0.89990234375, 0.2325592041015625, 0.3300323486328125, 0.5062713623046875, 0.1222686767578125, 0.74481201171875, 0.2686767578125, 0.7452850341796875, 0.3238983154296875, 0.196197509765625, 0.5844879150390625, 0.2330169677734375, 0.5359344482421875, 0.6192779541015625, 0.6552886962890625, 0.5346832275390625, 0.3106842041015625, 0.5247955322265625, 0.019012451171875, 0.222930908203125, 0.1790313720703125, 0.5680389404296875, 0.180511474609375, 0.4698028564453125, 0.266754150390625, 0.0709228515625, 0.7996826171875, 0.914581298828125, 0.4430389404296875, 0.0489959716796875, 0.8434600830078125, 0.6446685791015625, 0.369476318359375, 0.2720947265625, 0.702972412109375, 0.9758453369140625, 0.8705596923828125, 0.84423828125, 0.7301788330078125, 0.6275787353515625, 0.4365234375, 0.6065521240234375, 0.9634246826171875, 0.429840087890625, 0.1669921875, 0.663360595703125, 0.24652099609375, 0.5473785400390625, 0.683746337890625, 0.0334625244140625, 0.2334747314453125, 0.297821044921875, 0.629547119140625, 0.029388427734375, 0.07794189453125, 0.4337005615234375, 0.805328369140625, 0.1154937744140625, 0.31927490234375, 0.0200653076171875, 0.0165252685546875, 0.4536895751953125, 0.815582275390625, 0.4145355224609375, 0.0926666259765625, 0.7546539306640625, 0.9137725830078125, 0.072357177734375, 0.525360107421875, 0.754241943359375, 0.6156158447265625, 0.990936279296875, 0.409088134765625, 0.8429107666015625, 0.219573974609375, 0.4471588134765625, 0.8991546630859375, 0.9248809814453125, 0.081085205078125, 0.1060791015625, 0.2327728271484375, 0.72064208984375, 0.4281005859375, 0.406402587890625, 0.394256591796875, 0.949066162109375, 0.694366455078125, 0.42095947265625, 0.9152984619140625, 0.0748443603515625, 0.66937255859375, 0.1808929443359375, 0.23321533203125, 0.4078369140625, 0.044158935546875, 0.5254974365234375, 0.868682861328125, 0.121826171875, 0.3328094482421875, 0.12066650390625, 0.0278472900390625, 0.29998779296875, 0.800872802734375, 0.7681884765625, 0.45867919921875, 0.5357818603515625, 0.6770172119140625, 0.549163818359375, 0.8544921875, 0.4794769287109375, 0.4706878662109375, 0.94879150390625, 0.8807373046875, 0.5009765625, 0.8183746337890625, 0.621551513671875, 0.7676239013671875, 0.667205810546875, 0.3313446044921875, 0.562957763671875, 0.9609832763671875, 0.6547698974609375, 0.2315521240234375, 0.7052154541015625, 0.5247039794921875, 0.235809326171875, 0.990234375, 0.5306854248046875, 0.76727294921875, 0.8527679443359375, 0.7003173828125, 0.412841796875, 0.2985687255859375, 0.2756805419921875, 0.133819580078125, 0.4012451171875, 0.3650054931640625, 0.76324462890625, 0.0544891357421875, 0.871734619140625, 0.723602294921875, 0.9641571044921875, 0.43951416015625, 0.22247314453125, 0.04473876953125, 0.535614013671875, 0.1359710693359375, 0.65924072265625, 0.0907440185546875, 0.2047576904296875, 0.8000946044921875, 0.9058837890625, 0.016265869140625, 0.170440673828125, 0.53997802734375, 0.49298095703125, 0.9211578369140625, 0.1183013916015625, 0.1427001953125, 0.3220672607421875, 0.0152130126953125, 0.1211700439453125, 0.771728515625, 0.1933135986328125, 0.441619873046875, 0.260406494140625, 0.89739990234375, 0.21533203125, 0.104156494140625, 0.4619598388671875, 0.2430877685546875, 0.508056640625, 0.5589141845703125, 0.2718505859375, 0.2698974609375, 0.449493408203125, 0.8271942138671875, 0.0432586669921875, 0.2544708251953125, 0.4420928955078125, 0.6490325927734375, 0.77850341796875, 0.7428131103515625, 0.2367095947265625, 0.7337646484375, 0.91925048828125, 0.322723388671875, 0.0590667724609375, 0.7938079833984375, 0.588958740234375, 0.878204345703125, 0.5817718505859375, 0.536773681640625, 0.7916259765625, 0.905059814453125, 0.340667724609375, 0.6025543212890625, 0.0861968994140625, 0.916961669921875, 0.3414459228515625, 0.92633056640625, 0.0198211669921875, 0.54876708984375, 0.429351806640625, 0.4529876708984375, 0.3095550537109375, 0.44140625, 0.438140869140625, 0.63037109375, 0.424652099609375, 0.6756591796875, 0.1372528076171875, 0.90069580078125, 0.9770965576171875, 0.8770751953125, 0.8323822021484375, 0.3784942626953125, 0.613494873046875, 0.1260833740234375, 0.3979644775390625, 0.1707916259765625, 0.730621337890625, 0.0663299560546875, 0.9955291748046875, 0.4832305908203125, 0.4754486083984375, 0.911712646484375, 0.5316009521484375, 0.7235260009765625, 0.13909912109375, 0.1990966796875, 0.1863250732421875, 0.5371246337890625, 0.543060302734375, 0.9430999755859375, 0.6662750244140625, 0.337371826171875, 0.085723876953125, 0.132904052734375, 0.7086639404296875, 0.6008758544921875, 0.636566162109375, 0.2925872802734375, 0.7632598876953125, 0.1609039306640625, 0.512115478515625, 0.6168212890625, 0.336883544921875, 0.5487213134765625, 0.5537872314453125, 0.690338134765625, 0.7299957275390625, 0.364990234375, 0.823699951171875, 0.86627197265625, 0.930419921875, 0.9503326416015625, 0.9087371826171875, 0.73095703125, 0.15509033203125, 0.2732086181640625, 0.0721893310546875, 0.33319091796875, 0.511749267578125, 0.8350982666015625, 0.7871551513671875, 0.6424560546875, 0.452392578125, 0.7582550048828125, 0.3677215576171875, 0.535369873046875, 0.0285797119140625, 0.0440673828125, 0.731903076171875, 0.0889434814453125, 0.29644775390625, 0.50439453125, 0.4911956787109375, 0.8602142333984375, 0.9159088134765625, 0.2141265869140625, 0.5800018310546875, 0.488739013671875, 0.0927276611328125, 0.1238250732421875, 0.4767303466796875, 0.437896728515625, 0.5727691650390625, 0.4202880859375, 0.1547698974609375, 0.7625885009765625, 0.18505859375, 0.158233642578125, 0.5165863037109375, 0.255615234375, 0.2584991455078125, 0.50927734375, 0.1818389892578125, 0.2314910888671875, 0.521942138671875, 0.8264007568359375, 0.6514739990234375, 0.03704833984375, 0.85906982421875, 0.1431427001953125, 0.781005859375, 0.030181884765625, 0.4727325439453125, 0.1768646240234375, 0.9912261962890625, 0.15252685546875, 0.221923828125, 0.0708465576171875, 0.0287628173828125, 0.95159912109375, 0.0136260986328125, 0.1681060791015625, 0.8922271728515625, 0.8713531494140625, 0.0654144287109375, 0.1931610107421875, 0.062164306640625, 0.1531219482421875, 0.7372894287109375, 0.1896514892578125, 0.0241241455078125, 0.0634002685546875, 0.703765869140625, 0.7914276123046875, 0.561065673828125, 0.6764068603515625, 0.0394439697265625, 0.398284912109375, 0.00921630859375, 0.0117340087890625, 0.119354248046875, 0.6876220703125, 0.662841796875, 0.9032135009765625, 0.8896026611328125, 0.0236968994140625, 0.2530059814453125, 0.9465789794921875, 0.9249725341796875, 0.56298828125, 0.8831024169921875, 0.220733642578125, 0.3615570068359375, 0.3925933837890625, 0.4631195068359375, 0.5880889892578125, 0.66986083984375, 0.9186248779296875, 0.23712158203125, 0.1292724609375, 0.7628326416015625, 0.268798828125, 0.962860107421875, 0.8899383544921875, 0.498443603515625, 0.0565185546875, 0.865753173828125, 0.356201171875, 0.632843017578125, 0.961883544921875, 0.857879638671875, 0.3742218017578125, 0.963134765625, 0.7386627197265625, 0.478729248046875, 0.4008941650390625, 0.626251220703125, 0.5904998779296875, 0.0223846435546875, 0.1688690185546875, 0.5225677490234375, 0.7730712890625, 0.9735565185546875, 0.1124267578125, 0.856414794921875, 0.2332611083984375, 0.322357177734375, 0.3551025390625, 0.938568115234375, 0.9756011962890625, 0.62017822265625, 0.5837554931640625, 0.8734893798828125, 0.0269317626953125, 0.107666015625, 0.1280364990234375, 0.989349365234375, 0.3571929931640625, 0.665740966796875, 0.1668243408203125, 0.2314605712890625, 0.4480133056640625, 0.138031005859375, 0.3248443603515625, 0.365142822265625, 0.86285400390625, 0.50830078125, 0.755462646484375, 0.1078338623046875, 0.346405029296875, 0.7175750732421875, 0.7691497802734375, 0.82537841796875, 0.27471923828125, 0.0724945068359375, 0.67462158203125, 0.9510345458984375, 0.3243255615234375, 0.3091583251953125, 0.8030242919921875, 0.4525146484375, 0.5782623291015625, 0.4407196044921875, 0.993927001953125, 0.1114349365234375, 0.0843963623046875, 0.40472412109375, 0.3350067138671875, 0.8014678955078125, 0.4322967529296875, 0.693756103515625, 0.246490478515625, 0.316131591796875, 0.456695556640625, 0.1356201171875, 0.6392822265625, 0.0414886474609375, 0.2640838623046875, 0.69427490234375, 0.993408203125, 0.5214691162109375, 0.568572998046875, 0.6639862060546875, 0.18707275390625, 0.1704559326171875, 0.4239044189453125, 0.281707763671875, 0.8279571533203125, 0.240447998046875, 0.8942413330078125, 0.16180419921875, 0.0642242431640625, 0.124725341796875, 0.3032379150390625, 0.6687774658203125, 0.3685302734375, 0.59375, 0.6441802978515625, 0.5415191650390625, 0.21405029296875, 0.4099273681640625, 0.0650177001953125, 0.82525634765625, 0.44476318359375, 0.481475830078125, 0.3195343017578125, 0.3598785400390625, 0.617919921875, 0.2577667236328125, 0.9125823974609375, 0.316864013671875, 0.686981201171875, 0.879364013671875, 0.1290283203125, 0.6432342529296875, 0.0033111572265625, 0.4359588623046875, 0.9666290283203125, 0.5710296630859375, 0.926605224609375, 0.51483154296875, 0.59539794921875, 0.19671630859375, 0.9447784423828125, 0.2113800048828125, 0.7069091796875, 0.4817047119140625, 0.4390106201171875, 0.2997894287109375, 0.42657470703125, 0.4027862548828125, 0.7794342041015625, 0.1908721923828125, 0.4502105712890625, 0.784515380859375, 0.316375732421875, 0.720184326171875, 0.9352874755859375, 0.2183380126953125, 0.0660858154296875, 0.902587890625, 0.965576171875, 0.272674560546875, 0.878570556640625, 0.88165283203125, 0.761383056640625, 0.277618408203125, 0.801666259765625, 0.6390533447265625, 0.4160308837890625, 0.3618927001953125, 0.9118499755859375, 0.05413818359375, 0.9388427734375, 0.52777099609375, 0.6240692138671875, 0.23065185546875, 0.6544036865234375, 0.4781646728515625, 0.6312255859375, 0.20404052734375, 0.7940673828125, 0.7041473388671875, 0.846221923828125, 0.64898681640625, 0.3666839599609375, 0.6551513671875, 0.2554473876953125, 0.1003570556640625, 0.9313201904296875, 0.3046722412109375, 0.248687744140625, 0.4748077392578125, 0.2978668212890625, 0.006927490234375, 0.07269287109375, 0.721435546875, 0.2427215576171875, 0.8931427001953125, 0.6024627685546875, 0.718109130859375, 0.594879150390625, 0.5882110595703125, 0.2108154296875, 0.2220458984375, 0.9826507568359375, 0.6361236572265625, 0.17437744140625, 0.2479095458984375, 0.7232666015625, 0.9611053466796875, 0.8181304931640625, 0.60565185546875, 0.3161773681640625, 0.6372528076171875, 0.565582275390625, 0.47564697265625, 0.8436431884765625, 0.619720458984375, 0.8709869384765625, 0.0223541259765625, 0.734893798828125, 0.56915283203125, 0.2826385498046875, 0.356231689453125, 0.2199859619140625, 0.7049713134765625, 0.2661895751953125, 0.2960662841796875, 0.788055419921875, 0.435760498046875, 0.843505859375, 0.1514434814453125, 0.01654052734375, 0.817657470703125, 0.18902587890625, 0.778900146484375, 0.7376556396484375, 0.4375152587890625, 0.5648956298828125, 0.689666748046875, 0.36480712890625, 0.1259765625, 0.095062255859375, 0.061187744140625, 0.0531158447265625, 0.7261810302734375, 0.5198974609375, 0.73065185546875, 0.5350189208984375, 0.435272216796875, 0.17047119140625, 0.920623779296875, 0.4912261962890625, 0.5695648193359375, 0.007904052734375, 0.4464263916015625, 0.230865478515625, 0.826690673828125, 0.644744873046875, 0.8043975830078125, 0.590911865234375, 0.3527374267578125, 0.7909393310546875, 0.798126220703125, 0.73675537109375, 0.7352142333984375, 0.5989532470703125, 0.3484649658203125, 0.873809814453125, 0.886810302734375, 0.7756805419921875, 0.9057769775390625, 0.7825775146484375, 0.8056488037109375, 0.3619537353515625, 0.65045166015625, 0.147857666015625, 0.097900390625, 0.907379150390625, 0.430328369140625, 0.3220977783203125, 0.1046905517578125, 0.7128448486328125, 0.72393798828125, 0.0604705810546875, 0.70819091796875, 0.786224365234375, 0.59161376953125, 0.8024444580078125, 0.471405029296875, 0.7119598388671875, 0.7324371337890625, 0.3416900634765625, 0.4404449462890625, 0.769287109375, 0.301849365234375, 0.5464019775390625, 0.7307891845703125, 0.561309814453125, 0.3429412841796875, 0.5151824951171875, 0.606353759765625, 0.78424072265625, 0.525238037109375, 0.4874725341796875, 0.3208160400390625, 0.3341217041015625, 0.3447723388671875, 0.958587646484375, 0.1589508056640625, 0.6902618408203125, 0.0837554931640625, 0.8587799072265625, 0.8306732177734375, 0.9292449951171875, 0.621124267578125, 0.63885498046875, 0.45892333984375, 0.7976226806640625, 0.705841064453125, 0.569244384765625, 0.9016571044921875, 0.8379058837890625, 0.81182861328125, 0.28265380859375, 0.5096435546875, 0.03314208984375, 0.575439453125, 0.5234222412109375, 0.3927459716796875, 0.5544891357421875, 0.033843994140625, 0.2027740478515625, 0.8901214599609375, 0.16082763671875, 0.4251556396484375, 0.2709197998046875, 0.2623748779296875, 0.816650390625, 0.631622314453125, 0.20745849609375, 0.476470947265625, 0.1781463623046875, 0.9517974853515625, 0.5091094970703125, 0.2563629150390625, 0.6944732666015625, 0.6813507080078125, 0.609832763671875, 0.183807373046875, 0.692291259765625, 0.0462493896484375, 0.2518310546875, 0.287445068359375, 0.119415283203125, 0.780242919921875, 0.4441680908203125, 0.81982421875, 0.9672393798828125, 0.234130859375, 0.276702880859375, 0.3074188232421875, 0.243682861328125, 0.4845733642578125, 0.1001739501953125, 0.0508270263671875, 0.7248382568359375, 0.7151336669921875, 0.4020538330078125, 0.8455810546875, 0.607147216796875, 0.66888427734375, 0.3236236572265625, 0.68438720703125, 0.7847900390625, 0.196197509765625, 0.3563995361328125, 0.8089752197265625, 0.0768280029296875, 0.2879180908203125, 0.581207275390625, 0.7740325927734375, 0.70050048828125, 0.4778594970703125, 0.238372802734375, 0.50244140625, 0.518829345703125, 0.406494140625, 0.1601715087890625, 0.9782562255859375, 0.09246826171875, 0.930511474609375, 0.5875091552734375, 0.4757080078125, 0.001739501953125, 0.045867919921875, 0.7767181396484375, 0.510498046875, 0.4826202392578125, 0.117095947265625, 0.7321929931640625, 0.8810882568359375, 0.5189361572265625, 0.9637908935546875, 0.690826416015625, 0.22589111328125, 0.6073455810546875, 0.857177734375, 0.1534576416015625, 0.74212646484375, 0.1056060791015625, 0.378875732421875, 0.27691650390625, 0.558929443359375, 0.770355224609375, 0.0581817626953125, 0.7424468994140625, 0.2381744384765625, 0.1244659423828125, 0.4742279052734375, 0.2461700439453125, 0.778900146484375, 0.3288421630859375, 0.31927490234375, 0.87823486328125, 0.0857391357421875, 0.163543701171875, 0.848175048828125, 0.1237945556640625, 0.3300018310546875, 0.2126617431640625, 0.5297698974609375, 0.1471710205078125, 0.2051239013671875, 0.9781494140625, 0.380279541015625, 0.341339111328125, 0.5251007080078125, 0.838531494140625, 0.6566314697265625, 0.714263916015625, 0.1597747802734375, 0.473541259765625, 0.51177978515625, 0.33404541015625, 0.350067138671875, 0.177734375, 0.5592498779296875, 0.2905426025390625, 0.723724365234375, 0.068756103515625, 0.1969757080078125, 0.5361785888671875, 0.0491790771484375, 0.32342529296875, 0.6459197998046875, 0.581390380859375, 0.8010101318359375, 0.323974609375, 0.5305023193359375, 0.9916534423828125, 0.8453216552734375, 0.2246551513671875, 0.737213134765625, 0.5393218994140625, 0.1281280517578125, 0.2580108642578125, 0.9946136474609375, 0.783355712890625, 0.250396728515625, 0.0030517578125, 0.282257080078125, 0.0252685546875, 0.7630462646484375, 0.2534637451171875, 0.031890869140625, 0.3747100830078125, 0.6823272705078125, 0.5490264892578125, 0.24517822265625, 0.828582763671875, 0.2492218017578125, 0.77020263671875, 0.7515411376953125, 0.0360107421875, 0.300140380859375, 0.85223388671875, 0.2456817626953125, 0.8942718505859375, 0.008697509765625, 0.2989654541015625, 0.447265625, 0.3161163330078125, 0.7999267578125, 0.168731689453125, 0.0117340087890625, 0.245849609375, 0.0311737060546875, 0.2278900146484375, 0.866180419921875, 0.7455902099609375, 0.7494964599609375, 0.47247314453125, 0.710693359375, 0.895538330078125, 0.842193603515625, 0.2237091064453125, 0.5322265625, 0.0896759033203125, 0.867828369140625, 0.90008544921875, 0.5582122802734375, 0.276397705078125, 0.7334442138671875, 0.47967529296875, 0.475799560546875, 0.8505401611328125, 0.8015594482421875, 0.298309326171875, 0.397125244140625, 0.4527740478515625, 0.0713958740234375, 0.983795166015625, 0.3700408935546875, 0.1390533447265625, 0.816619873046875, 0.7344512939453125, 0.19940185546875, 0.5675506591796875, 0.9090576171875, 0.140625, 0.7003326416015625, 0.4601593017578125, 0.555206298828125, 0.2234039306640625, 0.5453033447265625, 0.3438720703125, 0.0421295166015625, 0.1269683837890625, 0.570709228515625, 0.6476898193359375, 0.9414520263671875, 0.596038818359375, 0.537841796875, 0.4511871337890625, 0.8085784912109375, 0.9399261474609375, 0.9160308837890625, 0.07000732421875, 0.9610595703125, 0.8545684814453125, 0.3673095703125, 0.2003021240234375, 0.2193603515625, 0.164764404296875, 0.7608642578125, 0.3477325439453125, 0.6268768310546875, 0.273468017578125, 0.5592803955078125, 0.1058807373046875, 0.6640472412109375, 0.2265777587890625, 0.091796875, 0.850677490234375, 0.214630126953125, 0.1641998291015625, 0.4713592529296875, 0.6445465087890625, 0.6420135498046875, 0.486297607421875, 0.308807373046875, 0.414642333984375, 0.1020660400390625, 0.8925323486328125, 0.6353607177734375, 0.8757171630859375, 0.38421630859375, 0.849945068359375, 0.938812255859375, 0.5086822509765625, 0.933197021484375, 0.264892578125, 0.8674163818359375, 0.5767974853515625, 0.2527618408203125, 0.684661865234375, 0.829864501953125, 0.7308197021484375, 0.8031768798828125, 0.252716064453125, 0.3150787353515625, 0.1480865478515625, 0.11859130859375, 0.102783203125, 0.128875732421875, 0.5411224365234375, 0.4123992919921875, 0.6849517822265625, 0.41253662109375, 0.0980072021484375, 0.272216796875, 0.917327880859375, 0.64923095703125, 0.5780792236328125, 0.1361846923828125, 0.7916717529296875, 0.9579010009765625, 0.8316497802734375, 0.6837615966796875, 0.0332183837890625, 0.19024658203125, 0.3663787841796875, 0.48089599609375, 0.5706939697265625, 0.3701019287109375, 0.93011474609375, 0.28985595703125, 0.4066314697265625, 0.94061279296875, 0.9941864013671875, 0.35955810546875, 0.648529052734375, 0.4128875732421875, 0.126434326171875, 0.8316802978515625, 0.3762054443359375, 0.30181884765625, 0.39178466796875, 0.50775146484375, 0.9073333740234375, 0.109619140625, 0.4723358154296875, 0.71875, 0.356536865234375, 0.1364288330078125, 0.606170654296875, 0.8425750732421875, 0.5543212890625, 0.0659637451171875, 0.7873687744140625, 0.957855224609375, 0.0667877197265625, 0.80712890625, 0.04241943359375, 0.1577911376953125, 0.516387939453125, 0.9564208984375, 0.073150634765625, 0.8695220947265625, 0.866912841796875, 0.9743194580078125, 0.6890716552734375, 0.09222412109375, 0.0494537353515625, 0.709197998046875, 0.7779083251953125, 0.4737701416015625, 0.53271484375, 0.49774169921875, 0.6487884521484375, 0.13787841796875, 0.896026611328125, 0.9795989990234375, 0.577880859375, 0.222747802734375, 0.2377166748046875, 0.1898651123046875, 0.3105010986328125, 0.7251434326171875, 0.97076416015625, 0.5707550048828125, 0.8442230224609375, 0.541015625, 0.9249420166015625, 0.629302978515625, 0.44757080078125, 0.58197021484375, 0.0134124755859375, 0.684234619140625, 0.9667816162109375, 0.2025909423828125, 0.8873443603515625, 0.4461517333984375, 0.1567230224609375, 0.1900787353515625, 0.1967926025390625, 0.162017822265625, 0.7663726806640625, 0.3478240966796875, 0.5297698974609375, 0.423583984375, 0.9084930419921875, 0.8675689697265625, 0.40679931640625, 0.7406768798828125, 0.239227294921875, 0.2590484619140625, 0.4345855712890625, 0.2799530029296875, 0.60028076171875, 0.9575042724609375, 0.7147064208984375, 0.8048858642578125, 0.5884552001953125, 0.7371826171875, 0.98345947265625, 0.0166015625, 0.8367156982421875, 0.49102783203125, 0.1705322265625, 0.545166015625, 0.1456451416015625, 0.23553466796875, 0.9590606689453125, 0.7204742431640625, 0.7888641357421875, 0.6922454833984375, 0.66546630859375, 0.173309326171875, 0.614532470703125, 0.625, 0.785186767578125, 0.738739013671875, 0.036285400390625, 0.941619873046875, 0.940765380859375, 0.7474822998046875, 0.229644775390625, 0.3393707275390625, 0.0615386962890625, 0.2134857177734375, 0.5358428955078125, 0.195404052734375, 0.06182861328125, 0.8206024169921875, 0.7986602783203125, 0.3390960693359375, 0.0980224609375, 0.8926544189453125, 0.3673248291015625, 0.8601226806640625, 0.9485015869140625, 0.5126953125, 0.1572418212890625, 0.761199951171875, 0.5993499755859375, 0.6496429443359375, 0.7290802001953125, 0.1611785888671875, 0.2970428466796875, 0.4024200439453125, 0.312957763671875, 0.89453125, 0.1668548583984375, 0.7830047607421875, 0.0210113525390625, 0.6995849609375, 0.8688812255859375, 0.242218017578125, 0.08868408203125, 0.5082855224609375, 0.7627716064453125, 0.283538818359375, 0.314361572265625, 0.9990386962890625, 0.9144287109375, 0.184722900390625, 0.6318359375, 0.0466766357421875, 0.7942352294921875, 0.1380767822265625, 0.6859893798828125, 0.2258758544921875, 0.6773223876953125, 0.7434844970703125, 0.43896484375, 0.29412841796875, 0.08880615234375, 0.4365234375, 0.8076171875, 0.2571258544921875, 0.66363525390625, 0.7866058349609375, 0.252777099609375, 0.1341400146484375, 0.5586700439453125, 0.10931396484375, 0.574127197265625, 0.402069091796875, 0.26593017578125, 0.382171630859375, 0.2996368408203125, 0.9463958740234375, 0.2171173095703125, 0.0557861328125, 0.4808807373046875, 0.8265838623046875, 0.0415802001953125, 0.8705596923828125, 0.20880126953125, 0.9272003173828125, 0.8831024169921875, 0.919097900390625, 0.36737060546875, 0.1277618408203125, 0.4036407470703125, 0.0435791015625, 0.3328857421875, 0.7710418701171875, 0.8946533203125, 0.614654541015625, 0.8481903076171875, 0.84295654296875, 0.396209716796875, 0.3872833251953125, 0.0813140869140625, 0.5686492919921875, 0.4529266357421875, 0.2486724853515625, 0.20941162109375, 0.061676025390625, 0.0740509033203125, 0.7809600830078125, 0.520172119140625, 0.76318359375, 0.693328857421875, 0.9578399658203125, 0.8833770751953125, 0.1902923583984375, 0.27435302734375, 0.79718017578125, 0.001708984375, 0.8593902587890625, 0.440338134765625, 0.4250640869140625, 0.5236663818359375, 0.15167236328125, 0.8385467529296875, 0.8152008056640625, 0.49725341796875, 0.679534912109375, 0.6300811767578125, 0.490386962890625, 0.3193359375, 0.1634521484375, 0.0408935546875, 0.1287078857421875, 0.201324462890625, 0.86822509765625, 0.1768646240234375, 0.82244873046875, 0.803070068359375, 0.4637908935546875, 0.964141845703125, 0.311676025390625, 0.54669189453125, 0.47344970703125, 0.3898162841796875, 0.1625213623046875, 0.5196685791015625, 0.9835968017578125, 0.6534423828125, 0.3398895263671875, 0.382568359375, 0.124542236328125, 0.545806884765625, 0.780731201171875, 0.567779541015625, 0.730712890625, 0.7464599609375, 0.560089111328125, 0.12933349609375, 0.877410888671875, 0.251007080078125, 0.2664794921875, 0.0232086181640625, 0.645172119140625, 0.742279052734375, 0.778106689453125, 0.63140869140625, 0.578460693359375, 0.31640625, 0.4599609375, 0.574554443359375, 0.053253173828125, 0.6306915283203125, 0.438873291015625, 0.4432220458984375, 0.9665069580078125, 0.732208251953125, 0.490020751953125, 0.003082275390625, 0.2770538330078125, 0.72760009765625, 0.7758941650390625, 0.0521392822265625, 0.7032012939453125, 0.913787841796875, 0.2181854248046875, 0.36578369140625, 0.5921783447265625, 0.626373291015625, 0.935516357421875, 0.4914703369140625, 0.5913848876953125, 0.959228515625, 0.92523193359375, 0.5567626953125, 0.1429290771484375, 0.7650604248046875, 0.1898040771484375, 0.0181121826171875, 0.5659027099609375, 0.8114166259765625, 0.8377532958984375, 0.073028564453125, 0.1753082275390625, 0.316986083984375, 0.8529205322265625, 0.4250640869140625, 0.0174102783203125, 0.51385498046875, 0.2137298583984375, 0.0860595703125, 0.61004638671875, 0.5821685791015625, 0.8640594482421875, 0.4026641845703125, 0.1362152099609375, 0.6750946044921875, 0.3700103759765625, 0.9658050537109375, 0.01898193359375, 0.517242431640625, 0.4844970703125, 0.3653106689453125, 0.8131561279296875, 0.390869140625, 0.6829833984375, 0.01953125, 0.61029052734375, 0.4782867431640625, 0.817718505859375, 0.4981231689453125, 0.1800079345703125, 0.73626708984375, 0.2084197998046875, 0.03753662109375, 0.7020721435546875, 0.9739837646484375, 0.1520538330078125, 0.3584747314453125, 0.7617340087890625, 0.24749755859375, 0.2005615234375, 0.369232177734375, 0.2910919189453125, 0.3665771484375, 0.300750732421875, 0.261260986328125, 0.1817626953125, 0.591949462890625, 0.7812042236328125, 0.472259521484375, 0.75341796875, 0.003875732421875, 0.608367919921875, 0.287200927734375, 0.924163818359375, 0.3765411376953125, 0.27960205078125, 0.857208251953125, 0.618377685546875, 0.747528076171875, 0.27154541015625, 0.4449920654296875, 0.6468963623046875, 0.2582550048828125, 0.4553680419921875, 0.397705078125, 0.3686065673828125, 0.438568115234375, 0.529022216796875, 0.804351806640625, 0.3430938720703125, 0.0488128662109375, 0.31048583984375, 0.0871124267578125, 0.952423095703125, 0.6532135009765625, 0.71044921875, 0.69573974609375, 0.3979034423828125, 0.422454833984375, 0.092376708984375, 0.430023193359375, 0.193450927734375, 0.2557220458984375, 0.6184539794921875, 0.2490234375, 0.464569091796875, 0.5442352294921875, 0.364898681640625, 0.9749755859375, 0.570404052734375, 0.31610107421875, 0.9622344970703125, 0.8921356201171875, 0.4449920654296875, 0.6288299560546875, 0.256591796875, 0.0842437744140625, 0.7484893798828125, 0.6576080322265625, 0.7930145263671875, 0.690093994140625, 0.793853759765625, 0.90679931640625, 0.7267608642578125, 0.497161865234375, 0.04351806640625, 0.6850128173828125, 0.2636566162109375, 0.4028472900390625, 0.7811126708984375, 0.8485260009765625, 0.974273681640625, 0.6379547119140625, 0.1748504638671875, 0.26031494140625, 0.511627197265625, 0.7995147705078125, 0.8623046875, 0.332611083984375, 0.124725341796875, 0.672821044921875, 0.49432373046875, 0.1886444091796875, 0.5908660888671875, 0.6653900146484375, 0.8638458251953125, 0.59649658203125, 0.2532196044921875, 0.8863067626953125, 0.6288299560546875, 0.257232666015625, 0.768829345703125, 0.295440673828125, 0.1086883544921875, 0.2589111328125, 0.46771240234375, 0.608673095703125, 0.4771728515625, 0.8412933349609375, 0.5304107666015625, 0.63751220703125, 0.9936981201171875, 0.83837890625, 0.3101348876953125, 0.6696624755859375, 0.4118804931640625, 0.1941680908203125, 0.21405029296875, 0.2700042724609375, 0.2873687744140625, 0.47650146484375, 0.9574127197265625, 0.787109375, 0.4245758056640625, 0.123687744140625, 0.9216156005859375, 0.6117401123046875, 0.772674560546875, 0.9496917724609375, 0.321533203125, 0.9408416748046875, 0.0855255126953125, 0.2080535888671875, 0.3543853759765625, 0.1807861328125, 0.1721343994140625, 0.2657928466796875, 0.2580413818359375, 0.2318115234375, 0.5839996337890625, 0.77252197265625, 0.9840545654296875, 0.597137451171875, 0.43255615234375, 0.8416595458984375, 0.239288330078125, 0.9519195556640625, 0.247650146484375, 0.9747772216796875, 0.323333740234375, 0.5055999755859375, 0.5219573974609375, 0.8804473876953125, 0.7877044677734375, 0.6725006103515625, 0.605987548828125, 0.3588104248046875, 0.5847625732421875, 0.1049957275390625, 0.3869476318359375, 0.9661865234375, 0.627532958984375, 0.676666259765625, 0.670440673828125, 0.5332794189453125, 0.8919219970703125, 0.8461151123046875, 0.3250579833984375, 0.256805419921875, 0.731048583984375, 0.295562744140625, 0.615386962890625, 0.913970947265625, 0.7765350341796875, 0.5179290771484375, 0.2921295166015625, 0.5193939208984375, 0.2173004150390625, 0.6561431884765625, 0.4398651123046875, 0.173431396484375, 0.2695465087890625, 0.9912261962890625, 0.9004364013671875, 0.82281494140625, 0.86260986328125, 0.694793701171875, 0.9029998779296875, 0.1401214599609375, 0.467987060546875, 0.6221466064453125, 0.9815216064453125, 0.4069366455078125, 0.833251953125, 0.846649169921875, 0.07257080078125, 0.664825439453125, 0.3266448974609375, 0.739532470703125, 0.2185821533203125, 0.80621337890625, 0.9649200439453125, 0.8406829833984375, 0.01959228515625, 0.6521148681640625, 0.0263519287109375, 0.1083526611328125, 0.88677978515625, 0.7823638916015625, 0.0772552490234375, 0.2442779541015625, 0.89190673828125, 0.7915191650390625, 0.27716064453125, 0.5862579345703125, 0.0111846923828125, 0.662353515625, 0.8010101318359375, 0.102996826171875, 0.9912109375, 0.0495758056640625, 0.60369873046875, 0.5472869873046875, 0.347381591796875, 0.8863067626953125, 0.4418487548828125, 0.2687225341796875, 0.16937255859375, 0.0177459716796875, 0.98248291015625, 0.9184417724609375, 0.98223876953125, 0.062286376953125, 0.0844573974609375, 0.520904541015625, 0.6981048583984375, 0.47454833984375, 0.489471435546875, 0.0637054443359375, 0.4866943359375, 0.154296875, 0.108551025390625, 0.247650146484375, 0.26995849609375, 0.678680419921875, 0.965057373046875, 0.6695709228515625, 0.5307769775390625, 0.0633087158203125, 0.960906982421875, 0.610504150390625, 0.2186279296875, 0.140533447265625, 0.256927490234375, 0.245361328125, 0.8768463134765625, 0.139251708984375, 0.54986572265625, 0.22735595703125, 0.2842254638671875, 0.647796630859375, 0.71319580078125, 0.968475341796875, 0.28472900390625, 0.72979736328125, 0.4367218017578125, 0.8744659423828125, 0.2323760986328125, 0.3933563232421875, 0.0043487548828125, 0.13775634765625, 0.500518798828125, 0.0926971435546875, 0.9517974853515625, 0.551788330078125, 0.64508056640625, 0.6858062744140625, 0.5370330810546875, 0.654541015625, 0.3937835693359375, 0.8971099853515625, 0.660552978515625, 0.4993743896484375, 0.253509521484375, 0.9066009521484375, 0.0945281982421875, 0.986724853515625, 0.747161865234375, 0.4616546630859375, 0.807861328125, 0.672760009765625, 0.1819610595703125, 0.89105224609375, 0.44268798828125, 0.708587646484375, 0.7664642333984375, 0.24224853515625, 0.4314422607421875, 0.8971405029296875, 0.7867889404296875, 0.7872467041015625, 0.343353271484375, 0.4056854248046875, 0.82855224609375, 0.33306884765625, 0.471435546875, 0.0614471435546875, 0.48162841796875, 0.1278533935546875, 0.063385009765625, 0.8824615478515625, 0.5498199462890625, 0.293731689453125, 0.7919921875, 0.1364288330078125, 0.1956024169921875, 0.7142486572265625, 0.2720947265625, 0.452301025390625, 0.122772216796875, 0.75164794921875, 0.8255767822265625, 0.0697479248046875, 0.796051025390625, 0.5937042236328125, 0.902740478515625, 0.5263671875, 0.88482666015625, 0.1449737548828125, 0.2531890869140625, 0.59039306640625, 0.3756256103515625, 0.350372314453125, 0.3483123779296875, 0.5157470703125, 0.2911529541015625, 0.154083251953125, 0.8844146728515625, 0.3227996826171875, 0.2797698974609375, 0.2787322998046875, 0.82781982421875, 0.6136016845703125, 0.7694854736328125, 0.8372955322265625, 0.235809326171875, 0.6249847412109375, 0.147705078125, 0.7035064697265625, 0.9273681640625, 0.4384918212890625, 0.4112701416015625, 0.375213623046875, 0.91375732421875, 0.053924560546875, 0.936859130859375, 0.65374755859375, 0.4689483642578125, 0.1964111328125, 0.184112548828125, 0.378814697265625, 0.18804931640625, 0.756591796875, 0.1910858154296875, 0.1542205810546875, 0.0407562255859375, 0.1969146728515625, 0.3784942626953125, 0.1694183349609375, 0.7923736572265625, 0.9267730712890625, 0.841461181640625, 0.3262939453125, 0.20843505859375, 0.1245574951171875, 0.7001953125, 0.770843505859375, 0.3109283447265625, 0.1539764404296875, 0.319610595703125, 0.077667236328125, 0.8459320068359375, 0.288665771484375, 0.7883148193359375, 0.0216217041015625, 0.7335662841796875, 0.2941131591796875, 0.5757293701171875, 0.24969482421875, 0.17156982421875, 0.2693023681640625, 0.6331939697265625, 0.4061279296875, 0.4585723876953125, 0.880340576171875, 0.6723480224609375, 0.01025390625, 0.4210052490234375, 0.1744232177734375, 0.37158203125, 0.108673095703125, 0.951568603515625, 0.66009521484375, 0.5414581298828125, 0.930755615234375, 0.5321502685546875, 0.047393798828125, 0.0494384765625, 0.3148193359375, 0.3848114013671875, 0.6813201904296875, 0.4829864501953125, 0.72723388671875, 0.5967559814453125, 0.4897613525390625, 0.6148681640625, 0.6064605712890625, 0.089874267578125, 0.60235595703125, 0.8116607666015625, 0.828460693359375, 0.856658935546875, 0.089599609375, 0.189453125, 0.660614013671875, 0.213043212890625, 0.0825958251953125, 0.52325439453125, 0.0434417724609375, 0.05108642578125, 0.3800811767578125, 0.8772125244140625, 0.40240478515625, 0.4989471435546875, 0.7904510498046875, 0.6373748779296875, 0.81939697265625, 0.4251251220703125, 0.2371978759765625, 0.00433349609375, 0.6339874267578125, 0.9571533203125, 0.5254058837890625, 0.22625732421875, 0.1293182373046875, 0.790191650390625, 0.357147216796875, 0.5018463134765625, 0.256103515625, 0.073638916015625, 0.4323577880859375, 0.686920166015625, 0.39654541015625, 0.5706939697265625, 0.076263427734375, 0.4320220947265625, 0.113250732421875, 0.4837646484375, 0.649688720703125, 0.7432861328125, 0.1790008544921875, 0.7232208251953125, 0.4889678955078125, 0.484832763671875, 0.783843994140625, 0.4591827392578125, 0.7390289306640625, 0.754638671875, 0.631256103515625, 0.802703857421875, 0.461456298828125, 0.459808349609375, 0.6740570068359375, 0.244171142578125, 0.37921142578125, 0.596527099609375, 0.314453125, 0.5676727294921875, 0.4991912841796875, 0.47100830078125, 0.06951904296875, 0.883056640625, 0.0089263916015625, 0.4844207763671875, 0.3442535400390625, 0.233673095703125, 0.4854583740234375, 0.74298095703125, 0.4214019775390625, 0.16357421875, 0.9691009521484375, 0.0682525634765625, 0.198699951171875, 0.50958251953125, 0.2196197509765625, 0.4736328125, 0.544830322265625, 0.215545654296875, 0.3107452392578125, 0.2259368896484375, 0.4034576416015625, 0.142303466796875, 0.95220947265625, 0.1359710693359375, 0.1258544921875, 0.8898468017578125, 0.83441162109375, 0.5988006591796875, 0.45294189453125, 0.0240020751953125, 0.64923095703125, 0.2981109619140625, 0.7067108154296875, 0.5313568115234375, 0.3170166015625, 0.7266387939453125, 0.40924072265625, 0.2269744873046875, 0.4523162841796875, 0.63616943359375, 0.5614776611328125, 0.092071533203125, 0.3824462890625, 0.8060150146484375, 0.2335662841796875, 0.1765899658203125, 0.10321044921875, 0.26556396484375, 0.1825103759765625, 0.650665283203125, 0.1884918212890625, 0.4625701904296875, 0.8845977783203125, 0.5855712890625, 0.4853973388671875, 0.9112701416015625, 0.526275634765625, 0.5920867919921875, 0.6615447998046875, 0.0586700439453125, 0.7901611328125, 0.2147216796875, 0.8019866943359375, 0.760223388671875, 0.9994049072265625, 0.016082763671875, 0.714141845703125, 0.237213134765625, 0.03143310546875, 0.3659820556640625, 0.2232666015625, 0.0484161376953125, 0.46575927734375, 0.254608154296875, 0.6688385009765625, 0.52679443359375, 0.003936767578125, 0.602996826171875, 0.3385009765625, 0.1681365966796875, 0.32061767578125, 0.4661712646484375, 0.8333282470703125, 0.1979217529296875, 0.04266357421875, 0.956268310546875, 0.045928955078125, 0.3694305419921875, 0.99725341796875, 0.60791015625, 0.8302001953125, 0.482574462890625, 0.7236328125, 0.2442779541015625, 0.3160858154296875, 0.7081146240234375, 0.0828399658203125, 0.534149169921875, 0.3685760498046875, 0.4734344482421875, 0.328369140625, 0.2106475830078125, 0.8007354736328125, 0.787200927734375, 0.687713623046875, 0.9165802001953125, 0.5795440673828125, 0.973541259765625, 0.8825836181640625, 0.6942596435546875, 0.212921142578125, 0.4580230712890625, 0.01531982421875, 0.667144775390625, 0.18084716796875, 0.7078094482421875, 0.41876220703125, 0.127044677734375, 0.2059783935546875, 0.0507354736328125, 0.262298583984375, 0.2808380126953125, 0.1678466796875, 0.1038970947265625, 0.615234375, 0.7620697021484375, 0.622283935546875, 0.44677734375, 0.1093597412109375, 0.5345458984375, 0.029632568359375, 0.21234130859375, 0.820159912109375, 0.9190216064453125, 0.668731689453125, 0.678375244140625, 0.9177398681640625, 0.51678466796875, 0.8699493408203125, 0.8619537353515625, 0.5091705322265625, 0.880767822265625, 0.0460662841796875, 0.62939453125, 0.6023712158203125, 0.0254974365234375, 0.119781494140625, 0.78155517578125, 0.7368316650390625, 0.1992034912109375, 0.2162322998046875, 0.4123992919921875, 0.8309783935546875, 0.833892822265625, 0.212982177734375, 0.1342926025390625, 0.7064666748046875, 0.5770111083984375, 0.629150390625, 0.56060791015625, 0.5583343505859375, 0.20562744140625, 0.3975067138671875, 0.284210205078125, 0.60870361328125, 0.3665924072265625, 0.3272552490234375, 0.2549591064453125, 0.623992919921875, 0.1388397216796875, 0.1930694580078125, 0.454864501953125, 0.843017578125, 0.14373779296875, 0.7430419921875, 0.1448211669921875, 0.981170654296875, 0.19384765625, 0.374298095703125, 0.0355987548828125, 0.317626953125, 0.415252685546875, 0.104736328125, 0.6982421875, 0.0761260986328125, 0.3303375244140625, 0.38665771484375, 0.47283935546875, 0.171112060546875, 0.720001220703125, 0.570709228515625, 0.6234283447265625, 0.9188995361328125, 0.0803070068359375, 0.7949981689453125, 0.957672119140625, 0.1570587158203125, 0.4290771484375, 0.0299835205078125, 0.9820556640625, 0.4432373046875, 0.3217926025390625, 0.6427154541015625, 0.9729766845703125, 0.9129791259765625, 0.6822967529296875, 0.7965087890625, 0.5159912109375, 0.8162689208984375, 0.2389984130859375, 0.634857177734375, 0.682647705078125, 0.572235107421875, 0.45281982421875, 0.2723236083984375, 0.9207916259765625, 0.6858062744140625, 0.843841552734375, 0.372894287109375, 0.1617431640625, 0.87841796875, 0.5420684814453125, 0.64080810546875, 0.1121673583984375, 0.4467620849609375, 0.2639923095703125, 0.697235107421875, 0.5773773193359375, 0.4512786865234375, 0.74896240234375, 0.8602447509765625, 0.9254913330078125, 0.6769866943359375, 0.4965362548828125, 0.3144073486328125, 0.6167755126953125, 0.2095184326171875, 0.4389190673828125, 0.6940765380859375, 0.0348968505859375, 0.66766357421875, 0.697845458984375, 0.3842315673828125, 0.1587371826171875, 0.2380523681640625, 0.6667633056640625, 0.883148193359375, 0.734954833984375, 0.41986083984375, 0.7881927490234375, 0.15557861328125, 0.54913330078125, 0.9608917236328125, 0.5595550537109375, 0.6739044189453125, 0.211669921875, 0.362274169921875, 0.0933074951171875, 0.3965911865234375, 0.4748382568359375, 0.0742340087890625, 0.61724853515625, 0.2079620361328125, 0.762176513671875, 0.28070068359375, 0.028167724609375, 0.2012481689453125, 0.057708740234375, 0.4705657958984375, 0.2180328369140625, 0.89227294921875, 0.093963623046875, 0.6956634521484375, 0.4345703125, 0.4212188720703125, 0.79583740234375, 0.936981201171875, 0.7885589599609375, 0.3205108642578125, 0.7805023193359375, 0.8637542724609375, 0.099456787109375, 0.83203125, 0.8499755859375, 0.0746612548828125, 0.30145263671875, 0.3661041259765625, 0.238555908203125, 0.84185791015625, 0.1748199462890625, 0.51129150390625, 0.6495361328125, 0.601654052734375, 0.907318115234375, 0.1390533447265625, 0.2423858642578125, 0.0125732421875, 0.9968414306640625, 0.332122802734375, 0.1275482177734375, 0.23406982421875, 0.8974151611328125, 0.5754241943359375, 0.54205322265625, 0.8107452392578125, 0.369537353515625, 0.1671905517578125, 0.297821044921875, 0.312774658203125, 0.70330810546875, 0.4450531005859375, 0.8465423583984375, 0.14959716796875, 0.8199005126953125, 0.51190185546875, 0.905426025390625, 0.292510986328125, 0.8263702392578125, 0.499053955078125, 0.8173370361328125, 0.898406982421875, 0.65618896484375, 0.4158782958984375, 0.885284423828125, 0.0074920654296875, 0.62579345703125, 0.423736572265625, 0.944366455078125, 0.4431915283203125, 0.6903228759765625, 0.4952392578125, 0.5247650146484375, 0.0092315673828125, 0.2227325439453125, 0.25567626953125, 0.4231109619140625, 0.238372802734375, 0.003570556640625, 0.6907501220703125, 0.7683258056640625, 0.939300537109375, 0.4733428955078125, 0.258148193359375, 0.9141387939453125, 0.8954925537109375, 0.802154541015625, 0.3325958251953125, 0.3948822021484375, 0.972137451171875, 0.5164031982421875, 0.63116455078125, 0.8753814697265625, 0.32122802734375, 0.3021240234375, 0.6584014892578125, 0.639404296875, 0.9034576416015625, 0.321044921875, 0.381195068359375, 0.64617919921875, 0.4012451171875, 0.58984375, 0.178436279296875, 0.8582305908203125, 0.7818756103515625, 0.469482421875, 0.75799560546875, 0.04669189453125, 0.4405364990234375, 0.26373291015625, 0.5321197509765625, 0.813140869140625, 0.176849365234375, 0.2147674560546875, 0.124664306640625, 0.2989501953125, 0.7557373046875, 0.3778228759765625, 0.9535369873046875, 0.386688232421875, 0.129974365234375, 0.7487640380859375, 0.3795013427734375, 0.0095062255859375, 0.3330230712890625, 0.3654022216796875, 0.70269775390625, 0.9819488525390625, 0.404876708984375, 0.1680908203125, 0.310455322265625, 0.828948974609375, 0.94586181640625, 0.481903076171875, 0.5587310791015625, 0.243621826171875, 0.4762115478515625, 0.559539794921875, 0.108551025390625, 0.1002044677734375, 0.59234619140625, 0.44122314453125, 0.9231109619140625, 0.6313323974609375, 0.4794464111328125, 0.5103759765625, 0.5353240966796875, 0.0550994873046875, 0.936981201171875, 0.4552154541015625, 0.6903076171875, 0.143310546875, 0.310546875, 0.642578125, 0.724639892578125, 0.6556396484375, 0.89495849609375, 0.1744842529296875, 0.6557159423828125, 0.7564239501953125, 0.3023834228515625, 0.4896087646484375, 0.177337646484375, 0.913818359375, 0.1391143798828125, 0.8807220458984375, 0.1187744140625, 0.7385711669921875, 0.7683258056640625, 0.4105377197265625, 0.7935333251953125, 0.7943878173828125, 0.3590240478515625, 0.7887420654296875, 0.193084716796875, 0.95330810546875, 0.0259552001953125, 0.5921783447265625, 0.20428466796875, 0.5312042236328125, 0.54656982421875, 0.0147705078125, 0.2030029296875, 0.0740966796875, 0.4635772705078125, 0.9540557861328125, 0.20977783203125, 0.1777801513671875, 0.0407867431640625, 0.5209197998046875, 0.8249664306640625, 0.7152099609375, 0.3137969970703125, 0.6414794921875, 0.2149810791015625, 0.1446533203125, 0.956451416015625, 0.18798828125, 0.0370330810546875, 0.7611541748046875, 0.1117706298828125, 0.14007568359375, 0.4862823486328125, 0.25653076171875, 0.25640869140625, 0.9342041015625, 0.7814178466796875, 0.9821624755859375, 0.5482025146484375, 0.78277587890625, 0.0536041259765625, 0.4205322265625, 0.61749267578125, 0.559356689453125, 0.79522705078125, 0.1788787841796875, 0.6940460205078125, 0.6548614501953125, 0.64605712890625, 0.2425994873046875, 0.2965087890625, 0.77593994140625, 0.324554443359375, 0.8868560791015625, 0.890045166015625, 0.0897064208984375, 0.6307220458984375, 0.6475830078125, 0.156280517578125, 0.4141998291015625, 0.96502685546875, 0.302947998046875, 0.1593780517578125, 0.28076171875, 0.735107421875, 0.9552154541015625, 0.477020263671875, 0.6074676513671875, 0.9795074462890625, 0.37799072265625, 0.6679534912109375, 0.4328765869140625, 0.0292816162109375, 0.70733642578125, 0.65594482421875, 0.4735260009765625, 0.3965911865234375, 0.5130462646484375, 0.523773193359375, 0.55755615234375, 0.076263427734375, 0.302947998046875, 0.771087646484375, 0.7074432373046875, 0.5747833251953125, 0.85992431640625, 0.6046600341796875, 0.0095367431640625, 0.515899658203125, 0.3569183349609375, 0.8785552978515625, 0.1838836669921875, 0.82916259765625, 0.578704833984375, 0.1408843994140625, 0.4293060302734375, 0.16552734375, 0.45751953125, 0.672882080078125, 0.6072998046875, 0.9751434326171875], "dims": [1, 8, 28, 28], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.onnx b/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.onnx new file mode 100644 index 0000000..1c0ece4 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.onnx @@ -0,0 +1,15 @@ + :c + +in_aout_a"Relu ReLuMnist12Z +in_a + + + + +b +out_a + + + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.res b/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.res new file mode 100644 index 0000000..05b7de6 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Relu/ReLuMnist12.res @@ -0,0 +1,3 @@ +Result: +memref<1x8x28x28xf32>[0.1312408447265625, 0.8585357666015625, 0.5255584716796875, 0.273773193359375, 0.263427734375, 0.1332550048828125, 0.61956787109375, 0.2161865234375, 0.8116302490234375, 0.925689697265625, 0.655914306640625, 0.1323089599609375, 0.05963134765625, 0.2934112548828125, 0.4145660400390625, 0.5701904296875, 0.9395904541015625, 0.1544342041015625, 0.80474853515625, 0.0964813232421875, 0.3243865966796875, 0.3674163818359375, 0.28509521484375, 0.529022216796875, 0.881103515625, 0.8309173583984375, 0.9957275390625, 0.0896759033203125, 0.37335205078125, 0.7725677490234375, 0.376617431640625, 0.7970428466796875, 0.3000335693359375, 0.744354248046875, 0.75439453125, 0.0270233154296875, 0.6620330810546875, 0.3969573974609375, 0.8841552734375, 0.6694488525390625, 0.37115478515625, 0.6509246826171875, 0.5106658935546875, 0.221649169921875, 0.09649658203125, 0.3371124267578125, 0.5616455078125, 0.7302398681640625, 0.5652008056640625, 0.3376312255859375, 0.6774444580078125, 0.4034576416015625, 0.4172515869140625, 0.3006591796875, 0.6054840087890625, 0.1515655517578125, 0.625579833984375, 0.849395751953125, 0.37127685546875, 0.9941864013671875, 0.67340087890625, 0.069915771484375, 0.1803741455078125, 0.0199432373046875, 0.59765625, 0.63201904296875, 0.10382080078125, 0.0333251953125, 0.6988677978515625, 0.40704345703125, 0.01019287109375, 0.49945068359375, 0.267913818359375, 0.3834686279296875, 0.2595672607421875, 0.9595947265625, 0.871490478515625, 0.5311431884765625, 0.0929412841796875, 0.0879364013671875, 0.5100250244140625, 0.0683441162109375, 0.455322265625, 0.0227203369140625, 0.4635772705078125, 0.8970184326171875, 0.8829498291015625, 0.42999267578125, 0.8414306640625, 0.0028533935546875, 0.20050048828125, 0.7550506591796875, 0.6178436279296875, 0.07427978515625, 0.697357177734375, 0.971221923828125, 0.404144287109375, 0.3426361083984375, 0.369659423828125, 0.445098876953125, 0.07965087890625, 0.4962005615234375, 0.413726806640625, 0.6714935302734375, 0.599456787109375, 0.825531005859375, 0.4766845703125, 0.599090576171875, 0.490509033203125, 0.110015869140625, 0.264892578125, 0.4504547119140625, 0.0131683349609375, 0.4315185546875, 0.7747955322265625, 0.2967681884765625, 0.6665191650390625, 0.039093017578125, 0.70916748046875, 0.4820098876953125, 0.2995147705078125, 0.3753509521484375, 0.6167755126953125, 0.893524169921875, 0.93798828125, 0.0672454833984375, 0.2371673583984375, 0.8929901123046875, 0.1709747314453125, 0.7216949462890625, 0.92266845703125, 0.42437744140625, 0.2947845458984375, 0.8960723876953125, 0.7233734130859375, 0.7078704833984375, 0.95550537109375, 0.0633087158203125, 0.611968994140625, 0.54461669921875, 0.6828155517578125, 0.228790283203125, 0.6581573486328125, 0.1966705322265625, 0.227813720703125, 0.685699462890625, 0.969696044921875, 0.04779052734375, 0.8706512451171875, 0.933624267578125, 0.9492950439453125, 0.00042724609375, 0.097137451171875, 0.661529541015625, 0.554107666015625, 0.797882080078125, 0.14837646484375, 0.9954376220703125, 0.384368896484375, 0.8187103271484375, 0.303680419921875, 0.4588470458984375, 0.5937042236328125, 0.57476806640625, 0.8383026123046875, 0.16253662109375, 0.941680908203125, 0.09356689453125, 0.4796905517578125, 0.51312255859375, 0.1929931640625, 0.415283203125, 0.48138427734375, 0.9959564208984375, 0.01361083984375, 0.97308349609375, 0.090179443359375, 0.32220458984375, 0.115447998046875, 0.3860626220703125, 0.85272216796875, 0.6641082763671875, 0.9465179443359375, 0.87451171875, 0.4649810791015625, 0.9612884521484375, 0.78961181640625, 0.9600830078125, 0.96551513671875, 0.75360107421875, 0.4864654541015625, 0.3233795166015625, 0.8290252685546875, 0.2139892578125, 0.3491058349609375, 0.1858673095703125, 0.2030181884765625, 0.5471038818359375, 0.4773712158203125, 0.3423919677734375, 0.158294677734375, 0.8387451171875, 0.336090087890625, 0.67840576171875, 0.3337554931640625, 0.47467041015625, 0.0447845458984375, 0.3543243408203125, 0.9336090087890625, 0.8908843994140625, 0.13580322265625, 0.128082275390625, 0.57373046875, 0.8593292236328125, 0.459503173828125, 0.3585357666015625, 0.5640106201171875, 0.6294403076171875, 0.6407470703125, 0.9517364501953125, 0.32501220703125, 0.7706756591796875, 0.0996551513671875, 0.713836669921875, 0.6484527587890625, 0.8423309326171875, 0.8894500732421875, 0.1443939208984375, 0.580169677734375, 0.9826202392578125, 0.9716949462890625, 0.12445068359375, 0.2350311279296875, 0.409210205078125, 0.45745849609375, 0.648712158203125, 0.2900543212890625, 0.67681884765625, 0.140228271484375, 0.2776641845703125, 0.6641082763671875, 0.39227294921875, 0.971343994140625, 0.37017822265625, 0.16192626953125, 0.79754638671875, 0.1012420654296875, 0.7954864501953125, 0.0194091796875, 0.58642578125, 0.6974945068359375, 0.7992401123046875, 0.2922210693359375, 0.2378997802734375, 0.1004791259765625, 0.0510711669921875, 0.015228271484375, 0.1232452392578125, 0.769134521484375, 0.6618804931640625, 0.5911102294921875, 0.756195068359375, 0.92449951171875, 0.1116943359375, 0.3064117431640625, 0.624420166015625, 0.88433837890625, 0.798431396484375, 0.6395416259765625, 0.0788421630859375, 0.534149169921875, 0.76031494140625, 0.36749267578125, 0.970977783203125, 0.5773468017578125, 0.6132049560546875, 0.6641082763671875, 0.364501953125, 0.2777862548828125, 0.944091796875, 0.7659454345703125, 0.15972900390625, 0.890838623046875, 0.6611175537109375, 0.3780059814453125, 0.6411895751953125, 0.337158203125, 0.7220611572265625, 0.1844024658203125, 0.986907958984375, 0.432403564453125, 0.009033203125, 0.2064208984375, 0.4802703857421875, 0.84783935546875, 0.1705322265625, 0.398040771484375, 0.7461090087890625, 0.8575897216796875, 0.215057373046875, 0.5662078857421875, 0.64208984375, 0.031982421875, 0.9661407470703125, 0.9826202392578125, 0.0577545166015625, 0.305450439453125, 0.48992919921875, 0.976654052734375, 0.810638427734375, 0.83984375, 0.984893798828125, 0.8299407958984375, 0.1878814697265625, 0.2839202880859375, 0.6182861328125, 0.497833251953125, 0.25799560546875, 0.3973846435546875, 0.209869384765625, 0.141357421875, 0.75189208984375, 0.026702880859375, 0.575439453125, 0.1498260498046875, 0.02557373046875, 0.598663330078125, 0.6682281494140625, 0.0320587158203125, 0.1302947998046875, 0.0830078125, 0.93597412109375, 0.7719879150390625, 0.1640625, 0.5516510009765625, 0.9373626708984375, 0.8345947265625, 0.2799224853515625, 0.0880279541015625, 0.0438385009765625, 0.92254638671875, 0.091094970703125, 0.9220428466796875, 0.7575225830078125, 0.5646820068359375, 0.1938018798828125, 0.6256866455078125, 0.790771484375, 0.5340423583984375, 0.4585113525390625, 0.59869384765625, 0.04974365234375, 0.6928253173828125, 0.3751068115234375, 0.527130126953125, 0.3168792724609375, 0.157745361328125, 0.1548614501953125, 0.4486541748046875, 0.5770263671875, 0.9263458251953125, 0.02105712890625, 0.462005615234375, 0.40325927734375, 0.4575347900390625, 0.04718017578125, 0.712432861328125, 0.1207733154296875, 0.9090728759765625, 0.498748779296875, 0.395416259765625, 0.059112548828125, 0.01861572265625, 0.695556640625, 0.7119903564453125, 0.6105194091796875, 0.09552001953125, 0.7026519775390625, 0.0245819091796875, 0.939605712890625, 0.3610687255859375, 0.693634033203125, 0.13751220703125, 0.510040283203125, 0.3706817626953125, 0.2611236572265625, 0.025543212890625, 0.042724609375, 0.6503753662109375, 0.872467041015625, 0.145751953125, 0.7494049072265625, 0.9432830810546875, 0.6071624755859375, 0.5453643798828125, 0.948089599609375, 0.753997802734375, 0.3357696533203125, 0.4647674560546875, 0.9427947998046875, 0.66253662109375, 0.163909912109375, 0.468536376953125, 0.2841339111328125, 0.4693756103515625, 0.8645172119140625, 0.7058563232421875, 0.855133056640625, 0.446868896484375, 0.527557373046875, 0.85235595703125, 0.72161865234375, 0.1135101318359375, 0.6080474853515625, 0.891387939453125, 0.2603759765625, 0.28240966796875, 0.342071533203125, 0.0840911865234375, 0.3730010986328125, 0.1385650634765625, 0.894561767578125, 0.5661468505859375, 0.913665771484375, 0.6291046142578125, 0.63385009765625, 0.956024169921875, 0.6685943603515625, 0.9681854248046875, 0.6775970458984375, 0.1095428466796875, 0.9576263427734375, 0.1182708740234375, 0.9025421142578125, 0.589080810546875, 0.6151123046875, 0.3088226318359375, 0.5020294189453125, 0.5196533203125, 0.21832275390625, 0.2897491455078125, 0.5177001953125, 0.413177490234375, 0.6633758544921875, 0.97918701171875, 0.98565673828125, 0.527099609375, 0.51629638671875, 0.9254302978515625, 0.8678741455078125, 0.5008544921875, 0.9866485595703125, 0.2784423828125, 0.4407958984375, 0.8636474609375, 0.789215087890625, 0.8189697265625, 0.9579620361328125, 0.94232177734375, 0.0472869873046875, 0.216064453125, 0.4600830078125, 0.0279998779296875, 0.825927734375, 0.593963623046875, 0.1497039794921875, 0.3779754638671875, 0.139373779296875, 0.2581329345703125, 0.6213531494140625, 0.345855712890625, 0.419158935546875, 0.0718231201171875, 0.0893096923828125, 0.48602294921875, 0.8202972412109375, 0.524810791015625, 0.896881103515625, 0.241363525390625, 0.52630615234375, 0.8589324951171875, 0.5771484375, 0.558319091796875, 0.762664794921875, 0.179168701171875, 0.391021728515625, 0.227783203125, 0.9315338134765625, 0.6878814697265625, 0.1544647216796875, 0.0104522705078125, 0.28692626953125, 0.423065185546875, 0.6535797119140625, 0.54766845703125, 0.03863525390625, 0.20709228515625, 0.377197265625, 0.8967132568359375, 0.1578826904296875, 0.555328369140625, 0.7096710205078125, 0.3751220703125, 0.508270263671875, 0.8252716064453125, 0.7535552978515625, 0.11175537109375, 0.64654541015625, 0.084503173828125, 0.9857330322265625, 0.8544464111328125, 0.5496063232421875, 0.462493896484375, 0.1487884521484375, 0.402618408203125, 0.5099945068359375, 0.01190185546875, 0.519500732421875, 0.2168121337890625, 0.0934295654296875, 0.7934112548828125, 0.4290618896484375, 0.6370391845703125, 0.827850341796875, 0.4654693603515625, 0.9679412841796875, 0.4185638427734375, 0.532318115234375, 0.711090087890625, 0.0680694580078125, 0.919036865234375, 0.869293212890625, 0.8402557373046875, 0.3856353759765625, 0.26458740234375, 0.643524169921875, 0.7870025634765625, 0.2952880859375, 0.0824127197265625, 0.109619140625, 0.4663238525390625, 0.23919677734375, 0.8123016357421875, 0.226837158203125, 0.4779205322265625, 0.1494140625, 0.95013427734375, 0.0420074462890625, 0.948455810546875, 0.67645263671875, 0.8955841064453125, 0.261322021484375, 0.0624542236328125, 0.59393310546875, 0.527679443359375, 0.906402587890625, 0.279205322265625, 0.4562835693359375, 0.43780517578125, 0.0108184814453125, 0.59368896484375, 0.5832366943359375, 0.0656280517578125, 0.2608795166015625, 0.5551300048828125, 0.8009796142578125, 0.797210693359375, 0.5304412841796875, 0.510498046875, 0.7337493896484375, 0.234405517578125, 0.299468994140625, 0.2288055419921875, 0.359832763671875, 0.71820068359375, 0.4381256103515625, 0.4235382080078125, 0.2129974365234375, 0.9348297119140625, 0.854248046875, 0.5142669677734375, 0.67047119140625, 0.0300140380859375, 0.706787109375, 0.33502197265625, 0.771820068359375, 0.196563720703125, 0.7443389892578125, 0.9049835205078125, 0.530731201171875, 0.23699951171875, 0.40155029296875, 0.97802734375, 0.47491455078125, 0.9055328369140625, 0.593414306640625, 0.110565185546875, 0.614227294921875, 0.096649169921875, 0.6578216552734375, 0.741241455078125, 0.1528778076171875, 0.9512939453125, 0.2027587890625, 0.18792724609375, 0.8864898681640625, 0.315704345703125, 0.9620208740234375, 0.812957763671875, 0.1016693115234375, 0.785797119140625, 0.5203094482421875, 0.0572662353515625, 0.5069122314453125, 0.3734130859375, 0.7236480712890625, 0.8979339599609375, 0.638275146484375, 0.582763671875, 0.8965606689453125, 0.677276611328125, 0.2410736083984375, 0.652008056640625, 0.1397705078125, 0.530426025390625, 0.2426910400390625, 0.7936859130859375, 0.339599609375, 0.26708984375, 0.4553985595703125, 0.698455810546875, 0.5232391357421875, 0.9666595458984375, 0.7169342041015625, 0.1769256591796875, 0.481414794921875, 0.1157989501953125, 0.2022552490234375, 0.1060333251953125, 0.8979644775390625, 0.6587677001953125, 0.1229095458984375, 0.9783477783203125, 0.035797119140625, 0.2136688232421875, 0.411590576171875, 0.8740386962890625, 0.5175018310546875, 0.931732177734375, 0.4307403564453125, 0.22003173828125, 0.5972137451171875, 0.989013671875, 0.41680908203125, 0.139190673828125, 0.1769561767578125, 0.98175048828125, 0.9022979736328125, 0.13018798828125, 0.816162109375, 0.2666473388671875, 0.2591400146484375, 0.2581329345703125, 0.9176483154296875, 0.88507080078125, 0.7740325927734375, 0.9463043212890625, 0.3080596923828125, 0.317230224609375, 0.7824249267578125, 0.499298095703125, 0.7840728759765625, 0.1572113037109375, 0.0841064453125, 0.411224365234375, 0.493255615234375, 0.0263519287109375, 0.5362548828125, 0.0445404052734375, 0.7044677734375, 0.918121337890625, 0.4080352783203125, 0.77398681640625, 0.3075103759765625, 0.6955718994140625, 0.37310791015625, 0.2418365478515625, 0.29547119140625, 0.584991455078125, 0.1346588134765625, 0.83026123046875, 0.9375457763671875, 0.41619873046875, 0.021270751953125, 0.48211669921875, 0.411346435546875, 0.495208740234375, 0.1797027587890625, 0.11737060546875, 0.7004852294921875, 0.2683868408203125, 0.781707763671875, 0.3995361328125, 0.6688690185546875, 0.9837493896484375, 0.8708343505859375, 0.361419677734375, 0.3291168212890625, 0.1739654541015625, 0.46112060546875, 0.2177581787109375, 0.173248291015625, 0.5762481689453125, 0.0001983642578125, 0.2846832275390625, 0.393951416015625, 0.4324951171875, 0.506683349609375, 0.9403533935546875, 0.81536865234375, 0.5519561767578125, 0.76806640625, 0.098297119140625, 0.7493896484375, 0.265167236328125, 0.16363525390625, 0.4109954833984375, 0.50091552734375, 0.4142913818359375, 0.8516998291015625, 0.035125732421875, 0.186065673828125, 0.83203125, 0.432525634765625, 0.8064117431640625, 0.6488037109375, 0.3474273681640625, 0.5998992919921875, 0.9093170166015625, 0.298583984375, 0.124359130859375, 0.949554443359375, 0.165069580078125, 0.2396392822265625, 0.6680755615234375, 0.133697509765625, 0.66485595703125, 0.2691192626953125, 0.072357177734375, 0.19427490234375, 0.31524658203125, 0.4712677001953125, 0.2906036376953125, 0.6918792724609375, 0.8482208251953125, 0.62054443359375, 0.252777099609375, 0.1357879638671875, 0.686737060546875, 0.4319305419921875, 0.7317047119140625, 0.024139404296875, 0.913665771484375, 0.3812103271484375, 0.527740478515625, 0.7228851318359375, 0.9935302734375, 0.100799560546875, 0.9854736328125, 0.3037872314453125, 0.46807861328125, 0.1755828857421875, 0.2363739013671875, 0.5822906494140625, 0.2602081298828125, 0.578155517578125, 0.8868408203125, 0.034576416015625, 0.70458984375, 0.8925933837890625, 0.2381744384765625, 0.9366912841796875, 0.0635528564453125, 0.50592041015625, 0.677093505859375, 0.4429168701171875, 0.7772979736328125, 0.268829345703125, 0.8329925537109375, 0.9127197265625, 0.148223876953125, 0.4543304443359375, 0.6136627197265625, 0.4053955078125, 0.870697021484375, 0.74700927734375, 0.4160003662109375, 0.5918426513671875, 0.8078765869140625, 0.4981231689453125, 0.4129791259765625, 0.913116455078125, 0.6909637451171875, 0.43731689453125, 0.7689361572265625, 0.052032470703125, 0.9085235595703125, 0.6693267822265625, 0.734832763671875, 0.8594818115234375, 0.5400543212890625, 0.9854583740234375, 0.6514892578125, 0.439208984375, 0.8494415283203125, 0.3029327392578125, 0.8702239990234375, 0.55865478515625, 0.4002227783203125, 0.5298614501953125, 0.1949615478515625, 0.8521270751953125, 0.51617431640625, 0.8502197265625, 0.583770751953125, 0.3801116943359375, 0.300689697265625, 0.987152099609375, 0.991241455078125, 0.354736328125, 0.6945953369140625, 0.0342254638671875, 0.481781005859375, 0.6847076416015625, 0.467559814453125, 0.99102783203125, 0.0923004150390625, 0.960601806640625, 0.78411865234375, 0.8041229248046875, 0.4650726318359375, 0.7516632080078125, 0.886199951171875, 0.139617919921875, 0.3021697998046875, 0.2025146484375, 0.191162109375, 0.6210784912109375, 0.874908447265625, 0.235565185546875, 0.091766357421875, 0.5915374755859375, 0.25653076171875, 0.002899169921875, 0.61346435546875, 0.7718353271484375, 0.8653411865234375, 0.5492706298828125, 0.7942352294921875, 0.2067413330078125, 0.93701171875, 0.4464874267578125, 0.6032562255859375, 0.5765380859375, 0.819427490234375, 0.4188995361328125, 0.417877197265625, 0.755401611328125, 0.1519317626953125, 0.5752716064453125, 0.686859130859375, 0.1099853515625, 0.7429046630859375, 0.0902862548828125, 0.5343475341796875, 0.2995452880859375, 0.2808837890625, 0.9176177978515625, 0.48773193359375, 0.6313018798828125, 0.652740478515625, 0.0026092529296875, 0.240936279296875, 0.5423126220703125, 0.729888916015625, 0.246856689453125, 0.320709228515625, 0.9539642333984375, 0.9307861328125, 0.2679595947265625, 0.22003173828125, 0.5854949951171875, 0.154632568359375, 0.1465301513671875, 0.6817474365234375, 0.083343505859375, 0.2006988525390625, 0.8954620361328125, 0.13372802734375, 0.69317626953125, 0.8433837890625, 0.6103363037109375, 0.0378570556640625, 0.218963623046875, 0.8819122314453125, 0.58013916015625, 0.962738037109375, 0.5103302001953125, 0.7282867431640625, 0.2218170166015625, 0.0101776123046875, 0.3099822998046875, 0.7382049560546875, 0.9084320068359375, 0.0919036865234375, 0.911102294921875, 0.1519317626953125, 0.7216949462890625, 0.635223388671875, 0.7535400390625, 0.7934112548828125, 0.9361572265625, 0.1580810546875, 0.9283599853515625, 0.93084716796875, 0.7288360595703125, 0.25091552734375, 0.057891845703125, 0.6285400390625, 0.757781982421875, 0.129547119140625, 0.983917236328125, 0.0568695068359375, 0.6289215087890625, 0.008941650390625, 0.548248291015625, 0.28802490234375, 0.1602630615234375, 0.3843994140625, 0.9802703857421875, 0.8563690185546875, 0.0059967041015625, 0.0230712890625, 0.9762115478515625, 0.20404052734375, 0.271026611328125, 0.475311279296875, 0.3471527099609375, 0.8840484619140625, 0.2438507080078125, 0.5460052490234375, 0.603271484375, 0.2649383544921875, 0.7987823486328125, 0.7456817626953125, 0.305084228515625, 0.2191009521484375, 0.839752197265625, 0.3550567626953125, 0.8483123779296875, 0.90887451171875, 0.6070556640625, 0.4094085693359375, 0.60540771484375, 0.6075439453125, 0.45294189453125, 0.011444091796875, 0.043426513671875, 0.3886260986328125, 0.0533599853515625, 0.1296844482421875, 0.838653564453125, 0.7720489501953125, 0.3236236572265625, 0.663604736328125, 7.62939453125e-05, 0.2392425537109375, 0.72222900390625, 0.2258453369140625, 0.477996826171875, 0.5438995361328125, 0.6926422119140625, 0.8925933837890625, 0.388031005859375, 0.259033203125, 0.457183837890625, 0.7586822509765625, 0.507659912109375, 0.0799407958984375, 0.6481170654296875, 0.1912994384765625, 0.587799072265625, 0.4725799560546875, 0.512420654296875, 0.2281341552734375, 0.665313720703125, 0.923492431640625, 0.6562652587890625, 0.0239105224609375, 0.8880767822265625, 0.2408599853515625, 0.0023956298828125, 0.238494873046875, 0.70947265625, 0.442962646484375, 0.3292236328125, 0.16357421875, 0.853912353515625, 0.194091796875, 0.25701904296875, 0.94403076171875, 0.6750640869140625, 0.505462646484375, 0.580230712890625, 0.7035369873046875, 0.48126220703125, 0.48590087890625, 0.8467864990234375, 0.447113037109375, 0.291717529296875, 0.007171630859375, 0.9796905517578125, 0.5538330078125, 0.15582275390625, 0.3148345947265625, 0.6032562255859375, 0.6391448974609375, 0.99462890625, 0.1631622314453125, 0.947540283203125, 0.7681884765625, 0.895965576171875, 0.56494140625, 0.3343505859375, 0.34722900390625, 0.363616943359375, 0.3627471923828125, 0.519287109375, 0.4338531494140625, 0.2504730224609375, 0.024627685546875, 0.160980224609375, 0.085479736328125, 0.799591064453125, 0.5047760009765625, 0.9828033447265625, 0.0285491943359375, 0.74407958984375, 0.1258544921875, 0.080169677734375, 0.5366973876953125, 0.682037353515625, 0.45086669921875, 0.2677459716796875, 0.1105499267578125, 0.6703948974609375, 0.6037139892578125, 0.618621826171875, 0.7115020751953125, 0.0774383544921875, 0.0694580078125, 0.901092529296875, 0.9705810546875, 0.4132080078125, 0.989898681640625, 0.25921630859375, 0.52032470703125, 0.5360870361328125, 0.8711090087890625, 0.4884796142578125, 0.69476318359375, 0.8604888916015625, 0.4541015625, 0.545623779296875, 0.73089599609375, 0.9013214111328125, 0.491180419921875, 0.267822265625, 0.10028076171875, 0.0487823486328125, 0.4959716796875, 0.290618896484375, 0.3282623291015625, 0.7934722900390625, 0.636016845703125, 0.15142822265625, 0.3834991455078125, 0.6342620849609375, 0.2671356201171875, 0.58392333984375, 0.6948089599609375, 0.2507171630859375, 0.9211883544921875, 0.8943328857421875, 0.8665771484375, 0.352813720703125, 0.6098785400390625, 0.3216552734375, 0.4087677001953125, 0.89605712890625, 0.510101318359375, 0.2163543701171875, 0.4393310546875, 0.606109619140625, 0.7162628173828125, 0.256561279296875, 0.4998779296875, 0.316009521484375, 0.133392333984375, 0.1105194091796875, 0.0738983154296875, 0.5319976806640625, 0.7034759521484375, 0.3856658935546875, 0.9630889892578125, 0.2204132080078125, 0.669097900390625, 0.899505615234375, 0.767120361328125, 0.7120513916015625, 0.6218109130859375, 0.5730438232421875, 0.2243194580078125, 0.3184814453125, 0.102874755859375, 0.356597900390625, 0.0236663818359375, 0.5240478515625, 0.8576202392578125, 0.0726318359375, 0.2667388916015625, 0.0266876220703125, 0.3551177978515625, 0.8059234619140625, 0.9958648681640625, 0.890472412109375, 0.2914276123046875, 0.10369873046875, 0.1156005859375, 0.0721435546875, 0.8879547119140625, 0.549560546875, 0.5500030517578125, 0.99310302734375, 0.3637542724609375, 0.2096710205078125, 0.133026123046875, 0.8609771728515625, 0.1844940185546875, 0.0822601318359375, 0.012939453125, 0.7055511474609375, 0.1088714599609375, 0.5577850341796875, 0.7915191650390625, 0.757415771484375, 0.1364593505859375, 0.41461181640625, 0.09857177734375, 0.9097747802734375, 0.7555084228515625, 0.364288330078125, 0.726104736328125, 0.34539794921875, 0.4195404052734375, 0.51409912109375, 0.190582275390625, 0.67681884765625, 0.4815216064453125, 0.517913818359375, 0.4639892578125, 0.40771484375, 0.2094268798828125, 0.82293701171875, 0.158599853515625, 0.5465087890625, 0.6485443115234375, 0.459503173828125, 0.8243560791015625, 0.3571624755859375, 0.6621246337890625, 0.3669586181640625, 0.782989501953125, 0.9394378662109375, 0.9952392578125, 0.1431427001953125, 0.2315673828125, 0.9049224853515625, 0.4158935546875, 0.37255859375, 0.096832275390625, 0.347442626953125, 0.5293731689453125, 0.588165283203125, 0.3876495361328125, 0.7474517822265625, 0.8034210205078125, 0.6041259765625, 0.0317230224609375, 0.757232666015625, 0.801025390625, 0.4513702392578125, 0.2764892578125, 0.705230712890625, 0.901824951171875, 0.4444580078125, 0.944580078125, 0.4544830322265625, 0.3617706298828125, 0.9124603271484375, 0.4586181640625, 0.7699127197265625, 0.55517578125, 0.09967041015625, 0.87921142578125, 0.4772796630859375, 0.247802734375, 0.3630218505859375, 0.73431396484375, 0.27203369140625, 0.4527740478515625, 0.9989013671875, 0.6032257080078125, 0.2791900634765625, 0.9267425537109375, 0.9324798583984375, 0.6615447998046875, 0.150146484375, 0.073486328125, 0.2743682861328125, 0.4611358642578125, 0.2919921875, 0.402008056640625, 0.4558258056640625, 0.5902252197265625, 0.2950592041015625, 0.9007110595703125, 0.5031890869140625, 0.3277435302734375, 0.78729248046875, 0.0083770751953125, 0.1468505859375, 0.0673828125, 0.4505767822265625, 0.00274658203125, 0.6927337646484375, 0.9690093994140625, 0.434661865234375, 0.811309814453125, 0.6978302001953125, 0.7429046630859375, 0.417877197265625, 0.7977142333984375, 0.8707733154296875, 0.6246490478515625, 0.59039306640625, 0.1712188720703125, 0.89739990234375, 0.8365325927734375, 0.8082275390625, 0.4925994873046875, 0.887939453125, 0.460601806640625, 0.7062530517578125, 0.9515533447265625, 0.0465850830078125, 0.8719482421875, 0.6301422119140625, 0.112457275390625, 0.9061737060546875, 0.4464263916015625, 0.8148345947265625, 0.890289306640625, 0.9697265625, 0.0341949462890625, 0.452056884765625, 0.4661407470703125, 0.4237518310546875, 0.6627960205078125, 0.69622802734375, 0.4542999267578125, 0.3101348876953125, 0.5973358154296875, 0.9185638427734375, 0.0724334716796875, 0.6239013671875, 0.4791107177734375, 0.21759033203125, 0.2188873291015625, 0.181640625, 0.777740478515625, 0.1357879638671875, 0.828125, 0.886962890625, 0.4862060546875, 0.9181976318359375, 0.314178466796875, 0.64630126953125, 0.987030029296875, 0.528717041015625, 0.4388275146484375, 0.7927093505859375, 0.635589599609375, 0.5860137939453125, 0.6268768310546875, 0.728363037109375, 0.0005950927734375, 0.36456298828125, 0.1092071533203125, 0.630706787109375, 0.76544189453125, 0.451812744140625, 0.3990936279296875, 0.983734130859375, 0.3469085693359375, 0.4569091796875, 0.2111968994140625, 0.8760833740234375, 0.4651031494140625, 0.97332763671875, 0.4826202392578125, 0.4747467041015625, 0.3764495849609375, 0.8346099853515625, 0.6454620361328125, 0.7080230712890625, 0.924163818359375, 0.58868408203125, 0.8481292724609375, 0.1662750244140625, 0.3852386474609375, 0.646209716796875, 0.3819427490234375, 0.2425079345703125, 0.430694580078125, 0.10089111328125, 0.4223785400390625, 0.1219482421875, 0.343475341796875, 0.443572998046875, 0.112945556640625, 0.245849609375, 0.50946044921875, 0.01788330078125, 0.70416259765625, 0.409027099609375, 0.5713958740234375, 0.7185516357421875, 0.5713653564453125, 0.6368865966796875, 0.244476318359375, 0.98419189453125, 0.7573699951171875, 0.5603790283203125, 0.84393310546875, 0.412017822265625, 0.094818115234375, 0.5359039306640625, 0.4619293212890625, 0.349884033203125, 0.302734375, 0.5666351318359375, 0.8720245361328125, 0.600372314453125, 0.7875518798828125, 0.835235595703125, 0.7966461181640625, 0.845367431640625, 0.6643524169921875, 0.8926239013671875, 0.06414794921875, 0.8350830078125, 0.9719085693359375, 0.0316314697265625, 0.5960235595703125, 0.1950836181640625, 0.287322998046875, 0.25384521484375, 0.033050537109375, 0.3328857421875, 0.643951416015625, 0.5968475341796875, 0.7160186767578125, 0.9354400634765625, 0.3514862060546875, 0.585357666015625, 0.599151611328125, 0.5986785888671875, 0.855224609375, 0.897369384765625, 0.111358642578125, 0.8071746826171875, 0.370391845703125, 0.6653900146484375, 0.23663330078125, 0.8591766357421875, 0.0123443603515625, 0.0096588134765625, 0.0734405517578125, 0.13409423828125, 0.8439178466796875, 0.9866180419921875, 0.047698974609375, 0.943634033203125, 0.4599609375, 0.7826385498046875, 0.7970733642578125, 0.2178955078125, 0.4826507568359375, 0.5185699462890625, 0.6916656494140625, 0.3852996826171875, 0.7530670166015625, 0.7661895751953125, 0.4238433837890625, 0.862945556640625, 0.7587738037109375, 0.633087158203125, 0.4487762451171875, 0.413818359375, 0.6743011474609375, 0.379638671875, 0.8812103271484375, 0.5418548583984375, 0.57940673828125, 0.9487457275390625, 0.4503936767578125, 0.345855712890625, 0.60986328125, 0.470947265625, 0.11944580078125, 0.809906005859375, 0.1909332275390625, 0.520294189453125, 0.524200439453125, 0.6219635009765625, 0.2432708740234375, 0.0897369384765625, 0.238067626953125, 0.1759796142578125, 0.1047821044921875, 0.875274658203125, 0.650299072265625, 0.8064727783203125, 0.26263427734375, 0.066680908203125, 0.65283203125, 0.901885986328125, 0.0526885986328125, 0.9474945068359375, 0.842376708984375, 0.568817138671875, 0.33990478515625, 0.4124908447265625, 0.0341033935546875, 0.3690643310546875, 0.5460357666015625, 0.3050384521484375, 0.1100616455078125, 0.361328125, 0.66802978515625, 0.5844879150390625, 0.5752716064453125, 0.058502197265625, 0.5604248046875, 0.8697357177734375, 0.543731689453125, 0.651031494140625, 0.6339111328125, 0.5249786376953125, 0.8226776123046875, 0.6000823974609375, 0.0621795654296875, 0.768951416015625, 0.774139404296875, 0.7099609375, 0.7966156005859375, 0.64093017578125, 0.9134674072265625, 0.4128875732421875, 0.211395263671875, 0.841827392578125, 0.4521331787109375, 0.9672698974609375, 0.6544036865234375, 0.856964111328125, 0.9759674072265625, 0.4154205322265625, 0.67095947265625, 0.34735107421875, 0.83050537109375, 0.17193603515625, 0.9307403564453125, 0.1368408203125, 0.92120361328125, 0.402740478515625, 0.7044677734375, 0.6752777099609375, 0.4085693359375, 0.9528350830078125, 0.902069091796875, 0.511993408203125, 0.822357177734375, 0.3226470947265625, 0.1216278076171875, 0.0333099365234375, 0.696868896484375, 0.508544921875, 0.929779052734375, 0.0285186767578125, 0.7543792724609375, 0.018890380859375, 0.83929443359375, 0.9529876708984375, 0.0764312744140625, 0.1827392578125, 0.7538604736328125, 0.87847900390625, 0.7257537841796875, 0.76904296875, 0.18109130859375, 0.163238525390625, 0.213836669921875, 0.6088714599609375, 0.97247314453125, 0.18560791015625, 0.2942352294921875, 0.472442626953125, 0.7904815673828125, 0.9528961181640625, 0.634246826171875, 0.4446258544921875, 0.273681640625, 0.0612030029296875, 0.4725799560546875, 0.5902099609375, 0.7678680419921875, 0.9705352783203125, 0.358062744140625, 0.1136932373046875, 0.22412109375, 0.954254150390625, 0.089935302734375, 0.608917236328125, 0.8682861328125, 0.63818359375, 0.765594482421875, 0.8845062255859375, 0.655181884765625, 0.4302825927734375, 0.0379180908203125, 0.534759521484375, 0.6593017578125, 0.722900390625, 0.6688690185546875, 0.5003509521484375, 0.4118194580078125, 0.99237060546875, 0.975830078125, 0.178985595703125, 0.217193603515625, 0.1761016845703125, 0.017669677734375, 0.446319580078125, 0.577117919921875, 0.925811767578125, 0.8180084228515625, 0.9180908203125, 0.72808837890625, 0.479888916015625, 0.329071044921875, 0.5270233154296875, 0.7617950439453125, 0.995758056640625, 0.2518310546875, 0.5730133056640625, 0.739227294921875, 0.81890869140625, 0.676788330078125, 0.0634613037109375, 0.787017822265625, 0.3134307861328125, 0.9955291748046875, 0.385711669921875, 0.7020111083984375, 0.2525177001953125, 0.1268157958984375, 0.4748992919921875, 0.9008636474609375, 0.522857666015625, 0.3490753173828125, 0.1591339111328125, 0.9205474853515625, 0.7203521728515625, 0.6591644287109375, 0.1929473876953125, 0.462066650390625, 0.4354248046875, 0.8440093994140625, 0.2637176513671875, 0.4669342041015625, 0.688873291015625, 0.7144927978515625, 0.3972625732421875, 0.8617401123046875, 0.8119049072265625, 0.195281982421875, 0.6984405517578125, 0.44671630859375, 0.9441375732421875, 0.2525634765625, 0.3310089111328125, 0.7769927978515625, 0.9616546630859375, 0.049102783203125, 0.4444580078125, 0.6244964599609375, 0.73876953125, 0.8037109375, 0.21929931640625, 0.0182952880859375, 0.5095672607421875, 0.3820648193359375, 0.3878173828125, 0.142242431640625, 0.400390625, 0.7258758544921875, 0.924713134765625, 0.9732666015625, 0.32269287109375, 0.5191650390625, 0.0109710693359375, 0.71185302734375, 0.330596923828125, 0.444915771484375, 0.8809814453125, 0.815155029296875, 0.457855224609375, 0.9517974853515625, 0.3203277587890625, 0.5015869140625, 0.76080322265625, 0.2885894775390625, 0.3464202880859375, 0.097442626953125, 0.548187255859375, 0.8534088134765625, 0.894500732421875, 0.18487548828125, 0.17822265625, 0.631561279296875, 0.557586669921875, 0.691619873046875, 0.09295654296875, 0.3743133544921875, 0.40966796875, 0.9474945068359375, 0.4466094970703125, 0.7131805419921875, 0.8035888671875, 0.4377899169921875, 0.0191650390625, 0.2709808349609375, 0.464630126953125, 0.0298004150390625, 0.288482666015625, 0.6111907958984375, 0.2334136962890625, 0.9741668701171875, 0.2936248779296875, 0.812225341796875, 0.0752410888671875, 0.842498779296875, 0.31719970703125, 0.691253662109375, 0.183837890625, 0.8035125732421875, 0.6454620361328125, 0.2223968505859375, 0.9221343994140625, 0.75994873046875, 0.93402099609375, 0.7913055419921875, 0.1851654052734375, 0.6674041748046875, 0.1061248779296875, 0.2720947265625, 0.2245025634765625, 0.0777435302734375, 0.8081817626953125, 0.714202880859375, 0.81378173828125, 0.9604949951171875, 0.6414794921875, 0.106292724609375, 0.4034423828125, 0.18603515625, 0.634002685546875, 0.277984619140625, 0.0666656494140625, 0.7631072998046875, 0.35821533203125, 0.6939239501953125, 0.114990234375, 0.596405029296875, 0.5645294189453125, 0.0010528564453125, 0.3021240234375, 0.511138916015625, 0.599090576171875, 0.8710479736328125, 0.74462890625, 0.72039794921875, 0.96270751953125, 0.6799774169921875, 0.1703643798828125, 0.298675537109375, 0.353271484375, 0.42474365234375, 0.5066680908203125, 0.171844482421875, 0.800048828125, 0.3720855712890625, 0.1009368896484375, 0.1086578369140625, 0.18975830078125, 0.928680419921875, 0.957366943359375, 0.0445404052734375, 0.6328582763671875, 0.0128631591796875, 0.3656768798828125, 0.087677001953125, 0.32464599609375, 0.29815673828125, 0.3031005859375, 0.7160797119140625, 0.99407958984375, 0.0301513671875, 0.5868377685546875, 0.58770751953125, 0.58001708984375, 0.07574462890625, 0.535064697265625, 0.0452880859375, 0.465911865234375, 0.55682373046875, 0.80975341796875, 0.046478271484375, 0.9559173583984375, 0.115264892578125, 0.5150909423828125, 0.0573577880859375, 0.21124267578125, 0.471435546875, 0.57794189453125, 0.1726531982421875, 0.3601226806640625, 0.057861328125, 0.833648681640625, 0.6158447265625, 0.1861724853515625, 0.027618408203125, 0.5596771240234375, 0.848297119140625, 0.9491424560546875, 0.7161407470703125, 0.3407745361328125, 0.2533111572265625, 0.4861907958984375, 0.0111236572265625, 0.81732177734375, 0.2242279052734375, 0.5152740478515625, 0.2023468017578125, 0.1639251708984375, 0.174713134765625, 0.3602447509765625, 0.0653228759765625, 0.522674560546875, 0.369781494140625, 0.392486572265625, 0.0313262939453125, 0.033935546875, 0.8523406982421875, 0.48516845703125, 0.759918212890625, 0.33477783203125, 0.5131683349609375, 0.920440673828125, 0.510955810546875, 0.179290771484375, 0.3160858154296875, 0.700897216796875, 0.64404296875, 0.2433624267578125, 0.110992431640625, 0.814453125, 0.6848907470703125, 0.322296142578125, 0.9871368408203125, 0.9000396728515625, 0.093231201171875, 0.0269927978515625, 0.2537994384765625, 0.3249664306640625, 0.5353851318359375, 0.6056060791015625, 0.981201171875, 0.2694854736328125, 0.1522064208984375, 0.525634765625, 0.7099761962890625, 0.0635223388671875, 0.4041595458984375, 0.3698577880859375, 0.173553466796875, 0.80865478515625, 0.284454345703125, 0.22216796875, 0.9246978759765625, 0.4581451416015625, 0.5563812255859375, 0.4073486328125, 0.2917327880859375, 0.0096435546875, 0.4029998779296875, 0.48431396484375, 0.75115966796875, 0.23956298828125, 0.9324951171875, 0.8617095947265625, 0.8873443603515625, 0.18548583984375, 0.146392822265625, 0.8980255126953125, 0.6421051025390625, 0.9821624755859375, 0.8263092041015625, 0.0504608154296875, 0.5619964599609375, 0.1614990234375, 0.480926513671875, 0.1775054931640625, 0.095001220703125, 0.2012939453125, 0.50775146484375, 0.442657470703125, 0.6707305908203125, 0.968719482421875, 0.092437744140625, 0.1767730712890625, 0.9804229736328125, 0.652557373046875, 0.7346954345703125, 0.998443603515625, 0.4598388671875, 0.40087890625, 0.91357421875, 0.4682464599609375, 0.9199676513671875, 0.3257598876953125, 0.0205230712890625, 0.4230499267578125, 0.1800689697265625, 0.83245849609375, 0.5630340576171875, 0.3902587890625, 0.9527435302734375, 0.61456298828125, 0.4389495849609375, 0.3220977783203125, 0.1161346435546875, 0.6811065673828125, 0.0645599365234375, 0.6629791259765625, 0.9139251708984375, 0.277587890625, 0.076202392578125, 0.9672698974609375, 0.030364990234375, 0.3242645263671875, 0.7659759521484375, 0.8555145263671875, 0.4840545654296875, 0.6703643798828125, 0.52154541015625, 0.1019439697265625, 0.669708251953125, 0.335235595703125, 0.668060302734375, 0.550628662109375, 0.11285400390625, 0.2743988037109375, 0.4945220947265625, 0.4703216552734375, 0.209625244140625, 0.78729248046875, 0.3587493896484375, 0.8860931396484375, 0.1254425048828125, 0.4219207763671875, 0.27716064453125, 0.62518310546875, 0.070953369140625, 0.4850006103515625, 0.2920379638671875, 0.4233245849609375, 0.3542633056640625, 0.1278076171875, 0.2639617919921875, 0.51092529296875, 0.4668121337890625, 0.5009002685546875, 0.0150909423828125, 0.2602996826171875, 0.2436981201171875, 0.44732666015625, 0.8090057373046875, 0.98968505859375, 0.2136383056640625, 0.539215087890625, 0.5436859130859375, 0.62371826171875, 0.5522613525390625, 0.1565093994140625, 0.29901123046875, 0.3789825439453125, 0.86761474609375, 0.4565277099609375, 0.6359710693359375, 0.477203369140625, 0.0381622314453125, 0.84527587890625, 0.0311279296875, 0.638885498046875, 0.2724761962890625, 0.5577545166015625, 0.1779022216796875, 0.9106597900390625, 0.57452392578125, 0.2438507080078125, 0.111297607421875, 0.0870361328125, 0.8874053955078125, 0.834930419921875, 0.8107452392578125, 0.007843017578125, 0.476043701171875, 0.840972900390625, 0.423248291015625, 0.84515380859375, 0.1263580322265625, 0.1471099853515625, 0.4402008056640625, 0.146636962890625, 0.244598388671875, 0.20196533203125, 0.1569366455078125, 0.7374267578125, 0.5063323974609375, 0.078094482421875, 0.8066558837890625, 0.054290771484375, 0.6562652587890625, 0.7600250244140625, 0.297515869140625, 0.84234619140625, 0.719146728515625, 0.2442169189453125, 0.1459503173828125, 0.4704132080078125, 0.649810791015625, 0.648101806640625, 0.432586669921875, 0.422027587890625, 0.8212127685546875, 0.2448577880859375, 0.0579681396484375, 0.868438720703125, 0.0594329833984375, 0.297027587890625, 0.1000213623046875, 0.846038818359375, 0.732177734375, 0.8216400146484375, 0.4905242919921875, 0.9073333740234375, 0.97021484375, 0.5693511962890625, 0.5761566162109375, 0.6522979736328125, 0.9702301025390625, 0.0270843505859375, 0.5834808349609375, 0.256011962890625, 0.8310699462890625, 0.3750762939453125, 0.7686920166015625, 0.71185302734375, 0.7826080322265625, 0.35546875, 0.335205078125, 0.2144012451171875, 0.9043426513671875, 0.9321441650390625, 0.863311767578125, 0.6636962890625, 0.157073974609375, 0.5107269287109375, 0.0620574951171875, 0.9169158935546875, 0.5896759033203125, 0.81378173828125, 0.3748626708984375, 0.4398345947265625, 0.6022491455078125, 0.40045166015625, 0.08441162109375, 0.872833251953125, 0.35650634765625, 0.317962646484375, 0.2638702392578125, 0.2437744140625, 0.08526611328125, 0.262359619140625, 0.3294525146484375, 0.9820404052734375, 0.5018768310546875, 0.9286956787109375, 0.7910003662109375, 0.2617645263671875, 0.635162353515625, 0.8309326171875, 0.917236328125, 0.1381072998046875, 0.3720550537109375, 0.4520263671875, 0.1741943359375, 0.8142242431640625, 0.364044189453125, 0.44073486328125, 0.6370849609375, 0.1130218505859375, 0.898712158203125, 0.9948577880859375, 0.186767578125, 0.916961669921875, 0.0027313232421875, 0.3650054931640625, 0.7965087890625, 0.401153564453125, 0.85919189453125, 0.3333587646484375, 0.9525299072265625, 0.3802947998046875, 0.026702880859375, 0.1676025390625, 0.3604888916015625, 0.3262786865234375, 0.0291900634765625, 0.506744384765625, 0.3773651123046875, 0.7461090087890625, 0.28240966796875, 0.307830810546875, 0.55517578125, 0.64520263671875, 0.89794921875, 0.79998779296875, 0.5884857177734375, 0.9013824462890625, 0.725921630859375, 0.87420654296875, 0.8967132568359375, 0.69403076171875, 0.6233673095703125, 0.4871063232421875, 0.808746337890625, 0.79962158203125, 0.3603973388671875, 0.4555816650390625, 0.95867919921875, 0.8517608642578125, 0.011749267578125, 0.1712799072265625, 0.4993896484375, 0.9760894775390625, 0.1651153564453125, 0.50665283203125, 0.378143310546875, 0.791839599609375, 0.48138427734375, 0.1802520751953125, 0.0450439453125, 0.4163665771484375, 0.5901031494140625, 0.1231842041015625, 0.34832763671875, 0.343414306640625, 0.4461669921875, 0.82647705078125, 0.8446044921875, 0.959228515625, 0.4116058349609375, 0.521270751953125, 0.5601806640625, 0.5304107666015625, 0.6310577392578125, 0.576263427734375, 0.98046875, 0.709930419921875, 0.0975189208984375, 0.667724609375, 0.15008544921875, 0.06060791015625, 0.7068328857421875, 0.1259002685546875, 0.209716796875, 0.66357421875, 0.6849212646484375, 0.345184326171875, 0.1535186767578125, 0.4061126708984375, 0.766693115234375, 0.3848876953125, 0.6450347900390625, 0.29791259765625, 0.5438995361328125, 0.0888824462890625, 0.9104156494140625, 0.8423919677734375, 0.6220550537109375, 0.947113037109375, 0.267425537109375, 0.7689056396484375, 0.563018798828125, 0.44964599609375, 0.56396484375, 0.591827392578125, 0.9737548828125, 0.5016021728515625, 0.1829833984375, 0.9941558837890625, 0.3474578857421875, 0.1279296875, 0.584747314453125, 0.0140533447265625, 0.2926025390625, 0.945343017578125, 0.1827545166015625, 0.524993896484375, 0.7513885498046875, 0.0002899169921875, 0.2053375244140625, 0.7996978759765625, 0.5770721435546875, 0.48846435546875, 0.17169189453125, 0.5545196533203125, 0.042205810546875, 0.831512451171875, 0.715301513671875, 0.670928955078125, 0.8140869140625, 0.808319091796875, 0.9305877685546875, 0.26263427734375, 0.42034912109375, 0.8287200927734375, 0.5297393798828125, 0.72576904296875, 0.873870849609375, 0.073944091796875, 0.165252685546875, 0.6963653564453125, 0.9948577880859375, 0.6654052734375, 0.5140380859375, 0.6002349853515625, 0.68914794921875, 0.1150054931640625, 0.6285247802734375, 0.498382568359375, 0.9132080078125, 0.9228668212890625, 0.01251220703125, 0.2806243896484375, 0.7861328125, 0.454345703125, 0.851898193359375, 0.30657958984375, 0.94671630859375, 0.1740875244140625, 0.322784423828125, 0.07049560546875, 0.7041015625, 0.06646728515625, 0.5490264892578125, 0.221588134765625, 0.558013916015625, 0.821380615234375, 0.291107177734375, 0.9219970703125, 0.172607421875, 0.504974365234375, 0.6053314208984375, 0.579132080078125, 0.662139892578125, 0.4362640380859375, 0.7197265625, 0.3518218994140625, 0.59320068359375, 0.6996917724609375, 0.6406097412109375, 0.587188720703125, 0.67156982421875, 0.2900390625, 0.863250732421875, 0.3668670654296875, 0.6822509765625, 0.5179443359375, 0.9543609619140625, 0.30181884765625, 0.9886627197265625, 0.2289276123046875, 0.52197265625, 0.2473602294921875, 0.58856201171875, 0.4393310546875, 0.9109344482421875, 0.3899383544921875, 0.4156646728515625, 0.121429443359375, 0.323150634765625, 0.9487762451171875, 0.9956512451171875, 0.0916595458984375, 0.3361663818359375, 0.9496917724609375, 0.83526611328125, 0.3005828857421875, 0.26763916015625, 0.923370361328125, 0.1436309814453125, 0.930908203125, 0.66656494140625, 0.998504638671875, 0.25604248046875, 0.50299072265625, 0.1625518798828125, 0.0612640380859375, 0.2459564208984375, 0.6951141357421875, 0.913665771484375, 0.9536895751953125, 0.2625579833984375, 0.8033447265625, 0.7269287109375, 0.4199371337890625, 0.810577392578125, 0.7698211669921875, 0.088897705078125, 0.8788299560546875, 0.0093536376953125, 0.1631622314453125, 0.16986083984375, 0.917724609375, 0.7734222412109375, 0.697235107421875, 0.9224395751953125, 0.0809783935546875, 0.302703857421875, 0.5085601806640625, 0.3341217041015625, 0.019378662109375, 0.512420654296875, 0.3658905029296875, 0.4198150634765625, 0.586273193359375, 0.588531494140625, 0.9967193603515625, 0.867828369140625, 0.1309356689453125, 0.7545928955078125, 0.192840576171875, 0.1429443359375, 0.300933837890625, 0.4380645751953125, 0.446502685546875, 0.355316162109375, 0.58221435546875, 0.8155975341796875, 0.0707244873046875, 0.4341278076171875, 0.47174072265625, 0.409698486328125, 0.2658233642578125, 0.000152587890625, 0.15087890625, 0.650634765625, 0.27520751953125, 0.9708099365234375, 0.123626708984375, 0.5534515380859375, 0.9192962646484375, 0.1381072998046875, 0.8809356689453125, 0.6616363525390625, 0.9658203125, 0.761383056640625, 0.4195556640625, 0.780120849609375, 0.1004791259765625, 0.9328765869140625, 0.449493408203125, 0.0283966064453125, 0.3325653076171875, 0.709808349609375, 0.4869537353515625, 0.9114837646484375, 0.409698486328125, 0.7401275634765625, 0.9760589599609375, 0.9674224853515625, 0.4604949951171875, 0.5027618408203125, 0.8434600830078125, 0.087066650390625, 0.256103515625, 0.508514404296875, 0.7849578857421875, 0.6000518798828125, 0.6014862060546875, 0.98748779296875, 0.6436920166015625, 0.6278533935546875, 0.8871002197265625, 0.9470977783203125, 0.6920928955078125, 0.0284271240234375, 0.832366943359375, 0.7566680908203125, 0.9854583740234375, 0.09417724609375, 0.38092041015625, 0.9848175048828125, 0.281005859375, 0.84149169921875, 0.1800384521484375, 0.9786376953125, 0.776153564453125, 0.117919921875, 0.583740234375, 0.6598052978515625, 0.8093414306640625, 0.105987548828125, 0.1745452880859375, 0.862091064453125, 0.03173828125, 0.923095703125, 0.51934814453125, 0.8298492431640625, 0.8070068359375, 0.858734130859375, 0.8496856689453125, 0.254119873046875, 0.9100799560546875, 0.5943603515625, 0.271026611328125, 0.198150634765625, 0.0379638671875, 0.983551025390625, 0.0444183349609375, 0.8274383544921875, 0.222625732421875, 0.2618255615234375, 0.000274658203125, 0.7205352783203125, 0.8824615478515625, 0.0801239013671875, 0.350860595703125, 0.10382080078125, 0.0699005126953125, 0.5994415283203125, 0.6021270751953125, 0.881103515625, 0.7318572998046875, 0.411163330078125, 0.6149139404296875, 0.4503021240234375, 0.79412841796875, 0.8465576171875, 0.7844085693359375, 0.1991424560546875, 0.7563629150390625, 0.814544677734375, 0.18609619140625, 0.36651611328125, 0.7017059326171875, 0.4122467041015625, 0.18212890625, 0.83135986328125, 0.8264923095703125, 0.834808349609375, 0.6599884033203125, 0.997650146484375, 0.113861083984375, 0.4878692626953125, 0.621795654296875, 0.6190643310546875, 0.4661102294921875, 0.6912841796875, 0.46331787109375, 0.8303070068359375, 0.5538177490234375, 0.0575103759765625, 0.912139892578125, 0.305999755859375, 0.6184539794921875, 0.5564117431640625, 0.8330230712890625, 0.8594818115234375, 0.5107574462890625, 0.8797607421875, 0.5703582763671875, 0.6231842041015625, 0.189971923828125, 0.4612884521484375, 0.879180908203125, 0.4000396728515625, 0.8123626708984375, 0.8722686767578125, 0.61199951171875, 0.8814239501953125, 0.8838348388671875, 0.9467620849609375, 0.6717987060546875, 0.2643280029296875, 0.817230224609375, 0.26513671875, 0.591064453125, 0.5204315185546875, 0.797515869140625, 0.2633056640625, 0.700469970703125, 0.8308563232421875, 0.81488037109375, 0.330535888671875, 0.9733428955078125, 0.9728546142578125, 0.2165374755859375, 0.881500244140625, 0.449859619140625, 0.6134185791015625, 0.9729156494140625, 0.9799957275390625, 0.0680999755859375, 0.0539093017578125, 0.1373748779296875, 0.600006103515625, 0.4784088134765625, 0.8881988525390625, 0.7597503662109375, 0.667724609375, 0.5737457275390625, 0.2963409423828125, 0.023834228515625, 0.8400115966796875, 0.1273651123046875, 0.7796173095703125, 0.67572021484375, 0.1602935791015625, 0.1410980224609375, 0.265716552734375, 0.9159698486328125, 0.6807708740234375, 0.0821990966796875, 0.73638916015625, 0.1915740966796875, 0.61590576171875, 0.7000885009765625, 0.3110504150390625, 0.791259765625, 0.2252197265625, 0.9564666748046875, 0.2442779541015625, 0.2337188720703125, 0.591583251953125, 0.4318084716796875, 0.0987548828125, 0.1800689697265625, 0.202392578125, 0.51458740234375, 0.276397705078125, 0.595123291015625, 0.6229400634765625, 0.9402923583984375, 0.0095367431640625, 0.15350341796875, 0.434326171875, 0.42779541015625, 0.59552001953125, 0.8406982421875, 0.3014984130859375, 0.556854248046875, 0.241790771484375, 0.689697265625, 0.6779937744140625, 0.27484130859375, 0.4579315185546875, 0.309783935546875, 0.490936279296875, 0.5862274169921875, 0.9722900390625, 0.1045074462890625, 0.567596435546875, 0.7400360107421875, 0.5130462646484375, 0.9455718994140625, 0.7162017822265625, 0.584259033203125, 0.1597442626953125, 0.5724945068359375, 0.7042694091796875, 0.9939422607421875, 0.714691162109375, 0.279937744140625, 0.1674957275390625, 0.7311248779296875, 0.9606781005859375, 0.934600830078125, 0.45635986328125, 0.8982391357421875, 0.3287353515625, 0.4831390380859375, 0.3303680419921875, 0.7044525146484375, 0.0069580078125, 0.4122161865234375, 0.35601806640625, 0.730926513671875, 0.479583740234375, 0.6479949951171875, 0.708404541015625, 0.4783782958984375, 0.285308837890625, 0.8260040283203125, 0.2248077392578125, 0.4945831298828125, 0.810455322265625, 0.50592041015625, 0.5850982666015625, 0.193023681640625, 0.220489501953125, 0.083984375, 0.4803466796875, 0.4323883056640625, 0.220672607421875, 0.57965087890625, 0.32452392578125, 0.5374603271484375, 0.1421966552734375, 0.8255462646484375, 0.3753662109375, 0.17791748046875, 0.7508544921875, 0.640899658203125, 0.51007080078125, 0.8516998291015625, 0.2240142822265625, 0.84979248046875, 0.742340087890625, 0.45843505859375, 0.9687347412109375, 0.53515625, 0.177154541015625, 0.99267578125, 0.85540771484375, 0.9042816162109375, 0.99761962890625, 0.7096405029296875, 0.95013427734375, 0.9009552001953125, 0.620574951171875, 0.511871337890625, 0.3661651611328125, 0.1486358642578125, 0.990478515625, 0.0526580810546875, 0.6215057373046875, 0.32940673828125, 0.17987060546875, 0.2250518798828125, 0.855865478515625, 0.3184967041015625, 0.247039794921875, 0.9935302734375, 0.8089447021484375, 0.5433502197265625, 0.5298004150390625, 0.16473388671875, 0.824554443359375, 0.2279052734375, 0.0988922119140625, 0.78985595703125, 0.73480224609375, 0.22833251953125, 0.625732421875, 0.009857177734375, 0.7623748779296875, 0.3749847412109375, 0.0047149658203125, 0.42816162109375, 0.1688232421875, 0.821258544921875, 0.800262451171875, 0.8339385986328125, 0.103271484375, 0.655731201171875, 0.7311553955078125, 0.4492340087890625, 0.7548675537109375, 0.918914794921875, 0.124542236328125, 0.955596923828125, 0.4276580810546875, 0.9771575927734375, 0.768218994140625, 0.4423675537109375, 0.454498291015625, 0.6086883544921875, 0.32757568359375, 0.637847900390625, 0.0119476318359375, 0.941650390625, 0.906707763671875, 0.371002197265625, 0.67120361328125, 0.140289306640625, 0.9195556640625, 0.7226715087890625, 0.1835174560546875, 0.2218780517578125, 0.71173095703125, 0.712493896484375, 0.0643463134765625, 0.40728759765625, 0.0446624755859375, 0.939453125, 0.9140777587890625, 0.387939453125, 0.277252197265625, 0.868743896484375, 0.5837554931640625, 0.9012451171875, 0.9903717041015625, 0.403594970703125, 0.814788818359375, 0.5390625, 0.68048095703125, 0.4699249267578125, 0.86968994140625, 0.14080810546875, 0.591064453125, 0.6390838623046875, 0.20947265625, 0.38641357421875, 0.546173095703125, 0.069793701171875, 0.6552734375, 0.3608856201171875, 0.3551788330078125, 0.45599365234375, 0.358306884765625, 0.496337890625, 0.2555694580078125, 0.07916259765625, 0.45281982421875, 0.46441650390625, 0.146820068359375, 0.87451171875, 0.051727294921875, 0.441619873046875, 0.38238525390625, 0.882049560546875, 0.050079345703125, 0.627899169921875, 0.056060791015625, 0.2084197998046875, 0.758758544921875, 0.763885498046875, 0.6888275146484375, 0.2572174072265625, 0.72930908203125, 0.0113067626953125, 0.629302978515625, 0.4906463623046875, 0.5435943603515625, 0.4471893310546875, 0.950836181640625, 0.776947021484375, 0.171722412109375, 0.1510009765625, 0.483489990234375, 0.336395263671875, 0.144805908203125, 0.522369384765625, 0.7464599609375, 0.3562164306640625, 0.549713134765625, 0.0692291259765625, 0.3680419921875, 0.57855224609375, 0.6145782470703125, 0.466888427734375, 0.0376434326171875, 0.5229949951171875, 0.2525787353515625, 0.05828857421875, 0.0001220703125, 0.306640625, 0.46905517578125, 0.000396728515625, 0.3337860107421875, 0.229339599609375, 0.710113525390625, 0.868804931640625, 0.8862457275390625, 0.576446533203125, 0.227752685546875, 0.0878143310546875, 0.5226287841796875, 0.119110107421875, 0.098663330078125, 0.4911651611328125, 0.423370361328125, 0.1234283447265625, 0.190826416015625, 0.5927581787109375, 0.5583343505859375, 0.9281768798828125, 0.449615478515625, 0.1437225341796875, 0.91339111328125, 0.5115509033203125, 0.2660369873046875, 0.196014404296875, 0.1053009033203125, 0.8307037353515625, 0.787200927734375, 0.2606353759765625, 0.2697296142578125, 0.56103515625, 0.61737060546875, 0.7903900146484375, 0.7251129150390625, 0.5436553955078125, 0.2250213623046875, 0.6233367919921875, 0.0238800048828125, 0.5083465576171875, 0.9593505859375, 0.457763671875, 0.6366424560546875, 0.8640594482421875, 0.8618316650390625, 0.19366455078125, 0.3707427978515625, 0.7306976318359375, 0.0148773193359375, 0.2418670654296875, 0.9309539794921875, 0.4759979248046875, 0.1625213623046875, 0.933349609375, 0.5961761474609375, 0.9680938720703125, 0.96240234375, 0.6773223876953125, 0.953521728515625, 0.6549224853515625, 0.0343017578125, 0.0003814697265625, 0.7334136962890625, 0.7221527099609375, 0.22607421875, 0.2049560546875, 0.5709381103515625, 0.172637939453125, 0.773773193359375, 0.5529327392578125, 0.7381744384765625, 0.6679534912109375, 0.1275634765625, 0.0401458740234375, 0.292449951171875, 0.9862518310546875, 0.00860595703125, 0.9751434326171875, 0.666595458984375, 0.26348876953125, 0.930572509765625, 0.713165283203125, 0.7801361083984375, 0.17352294921875, 0.9403228759765625, 0.159393310546875, 0.691864013671875, 0.861846923828125, 0.876708984375, 0.1941986083984375, 0.8217926025390625, 0.4484405517578125, 0.218963623046875, 0.9552154541015625, 0.3439788818359375, 0.7056884765625, 0.5242767333984375, 0.5709075927734375, 0.5382843017578125, 0.87158203125, 0.2343902587890625, 0.29144287109375, 0.4893951416015625, 0.11505126953125, 0.2636260986328125, 0.6517333984375, 0.7156524658203125, 0.067779541015625, 0.0494384765625, 0.5468597412109375, 0.2340850830078125, 0.1273956298828125, 0.865020751953125, 0.4750518798828125, 0.355010986328125, 0.610198974609375, 0.332733154296875, 0.9457855224609375, 0.3563690185546875, 0.3034820556640625, 0.35577392578125, 0.4180145263671875, 0.017791748046875, 0.38922119140625, 0.8792266845703125, 0.3278350830078125, 0.7629547119140625, 0.8687286376953125, 0.95281982421875, 0.8841094970703125, 0.48126220703125, 0.515106201171875, 0.119140625, 0.0220947265625, 0.871917724609375, 0.4684600830078125, 0.905426025390625, 0.4675445556640625, 0.7384796142578125, 0.797943115234375, 0.851287841796875, 0.2330474853515625, 0.9061279296875, 0.7480010986328125, 0.369537353515625, 0.7081756591796875, 0.292999267578125, 0.301971435546875, 0.1255950927734375, 0.634918212890625, 0.90606689453125, 0.4879913330078125, 0.6472320556640625, 0.1715850830078125, 0.07568359375, 0.669586181640625, 0.85418701171875, 0.9761199951171875, 0.0462493896484375, 0.3597564697265625, 0.1385345458984375, 0.2257843017578125, 0.248138427734375, 0.9489593505859375, 0.713165283203125, 0.7974090576171875, 0.6679840087890625, 0.832183837890625, 0.0359344482421875, 0.0025787353515625, 0.9885711669921875, 0.054840087890625, 0.0682525634765625, 0.912567138671875, 0.494903564453125, 0.2547607421875, 0.3706207275390625, 0.408905029296875, 0.858062744140625, 0.2085113525390625, 0.0984954833984375, 0.887115478515625, 0.467193603515625, 0.9062347412109375, 0.3221282958984375, 0.3321990966796875, 0.1254425048828125, 0.1474151611328125, 0.16485595703125, 0.3346405029296875, 0.4960174560546875, 0.6330108642578125, 0.5946197509765625, 0.74359130859375, 0.675689697265625, 0.7268218994140625, 0.5374298095703125, 0.408935546875, 0.208831787109375, 0.7220458984375, 0.046478271484375, 0.8280487060546875, 0.47613525390625, 0.0087738037109375, 0.9361724853515625, 0.21490478515625, 0.9983062744140625, 0.4366912841796875, 0.6246795654296875, 0.49383544921875, 0.7853851318359375, 0.841278076171875, 0.85888671875, 0.8579864501953125, 0.830474853515625, 0.8365936279296875, 0.9377593994140625, 0.563812255859375, 0.6098785400390625, 0.031097412109375, 0.684814453125, 0.537200927734375, 0.415252685546875, 0.1463165283203125, 0.3516387939453125, 0.291351318359375, 0.054931640625, 0.969482421875, 0.7154388427734375, 0.06243896484375, 0.692169189453125, 0.3655548095703125, 0.1402740478515625, 0.1349945068359375, 0.533782958984375, 0.599151611328125, 0.568389892578125, 0.7540283203125, 0.7942962646484375, 0.862091064453125, 0.3977813720703125, 0.382354736328125, 0.6169586181640625, 0.9133453369140625, 0.2217559814453125, 0.95068359375, 0.1685028076171875, 0.77923583984375, 0.9740142822265625, 0.353271484375, 0.22613525390625, 0.6932220458984375, 0.3332672119140625, 0.935089111328125, 0.2204742431640625, 0.452117919921875, 0.404205322265625, 0.9001312255859375, 0.7043609619140625, 0.89044189453125, 0.3995819091796875, 0.7945556640625, 0.3162078857421875, 0.51971435546875, 0.437957763671875, 0.3680572509765625, 0.5278472900390625, 0.6544189453125, 0.1342926025390625, 0.3490142822265625, 0.47406005859375, 0.5224456787109375, 0.57794189453125, 0.004241943359375, 0.0281524658203125, 0.1942901611328125, 0.0429534912109375, 0.421966552734375, 0.7995147705078125, 0.9923248291015625, 0.518218994140625, 0.4094390869140625, 0.82135009765625, 0.7731475830078125, 0.2827301025390625, 0.27685546875, 0.6678314208984375, 0.4794464111328125, 0.0964202880859375, 0.7126007080078125, 0.7487945556640625, 0.3946533203125, 0.5012359619140625, 0.9244842529296875, 0.3731536865234375, 0.45062255859375, 0.450347900390625, 0.270782470703125, 0.995513916015625, 0.4792022705078125, 0.4544677734375, 0.5205841064453125, 0.5105743408203125, 0.715087890625, 0.8461151123046875, 0.33331298828125, 0.6127166748046875, 0.2151641845703125, 0.3472900390625, 0.59808349609375, 0.5625, 0.2593536376953125, 0.1395721435546875, 0.1018218994140625, 0.042144775390625, 0.784912109375, 0.1358489990234375, 0.3778076171875, 0.954010009765625, 0.2128143310546875, 0.4885406494140625, 0.9876556396484375, 0.0317230224609375, 0.984130859375, 0.267486572265625, 0.04998779296875, 0.797332763671875, 0.8224945068359375, 0.4001922607421875, 0.3546295166015625, 0.62109375, 0.333251953125, 0.363555908203125, 0.9021453857421875, 0.3238525390625, 0.8055877685546875, 0.3341064453125, 0.322265625, 0.7468109130859375, 0.5577850341796875, 0.26373291015625, 0.9402618408203125, 0.0891876220703125, 0.151397705078125, 0.2769927978515625, 0.482757568359375, 0.3439178466796875, 0.9304351806640625, 0.9126129150390625, 0.6968994140625, 0.3915863037109375, 0.9964447021484375, 0.788787841796875, 0.8394622802734375, 0.4186553955078125, 0.6468353271484375, 0.187042236328125, 0.7198486328125, 0.6882781982421875, 0.458221435546875, 0.20751953125, 0.9317474365234375, 0.9330596923828125, 0.40985107421875, 0.1011962890625, 0.2521820068359375, 0.0338897705078125, 0.586456298828125, 0.96453857421875, 0.64190673828125, 0.953857421875, 0.7674713134765625, 0.103790283203125, 0.9822235107421875, 0.9919891357421875, 0.6163177490234375, 0.6995697021484375, 0.07861328125, 0.0481719970703125, 0.21636962890625, 0.099945068359375, 0.401702880859375, 0.6668853759765625, 0.7854766845703125, 0.9932708740234375, 0.299835205078125, 0.77325439453125, 0.0799407958984375, 0.941436767578125, 0.2920684814453125, 0.86651611328125, 0.063934326171875, 0.5628814697265625, 0.4740142822265625, 0.4698486328125, 0.1399688720703125, 0.2516937255859375, 0.2675933837890625, 0.218841552734375, 0.7412261962890625, 0.506378173828125, 0.70111083984375, 0.7538299560546875, 0.5238037109375, 0.71026611328125, 0.6086578369140625, 0.7697296142578125, 0.9723663330078125, 0.8294525146484375, 0.503173828125, 0.820648193359375, 0.43426513671875, 0.546295166015625, 0.6580810546875, 0.0205078125, 0.2456512451171875, 0.697296142578125, 0.789794921875, 0.3255157470703125, 0.125335693359375, 0.1495208740234375, 0.3520050048828125, 0.11627197265625, 0.996185302734375, 0.203125, 0.0048675537109375, 0.9882354736328125, 0.1345062255859375, 0.564910888671875, 0.2460784912109375, 0.9855194091796875, 0.9284210205078125, 0.05682373046875, 0.842681884765625, 0.3474884033203125, 0.222686767578125, 0.9329833984375, 0.72430419921875, 0.7796783447265625, 0.6020355224609375, 0.7907562255859375, 0.858154296875, 0.951507568359375, 0.5500640869140625, 0.7963714599609375, 0.939605712890625, 0.763763427734375, 0.1435546875, 0.10186767578125, 0.9237823486328125, 0.7952880859375, 0.291595458984375, 0.3031768798828125, 0.65899658203125, 0.759185791015625, 0.6580047607421875, 0.1143341064453125, 0.6417999267578125, 0.087860107421875, 0.3653717041015625, 0.189697265625, 0.57867431640625, 0.7807769775390625, 0.113739013671875, 0.7769012451171875, 0.5348358154296875, 0.9299774169921875, 0.4202423095703125, 0.0381622314453125, 0.95770263671875, 0.7679290771484375, 0.8633270263671875, 0.2121429443359375, 0.4953460693359375, 0.7798614501953125, 0.0210113525390625, 0.7517547607421875, 0.60479736328125, 0.564544677734375, 0.2557220458984375, 0.079986572265625, 0.4791107177734375, 0.9696197509765625, 0.3106689453125, 0.896942138671875, 0.361083984375, 0.4070281982421875, 0.797882080078125, 0.442230224609375, 0.44476318359375, 0.0088958740234375, 0.0033111572265625, 0.916656494140625, 0.9837646484375, 0.240570068359375, 0.349639892578125, 0.6580657958984375, 0.9998779296875, 0.0774078369140625, 0.7341766357421875, 0.7088623046875, 0.570037841796875, 0.0437469482421875, 0.3318634033203125, 0.0550537109375, 0.76324462890625, 0.92938232421875, 0.1065216064453125, 0.9412384033203125, 0.72454833984375, 0.817596435546875, 0.2814178466796875, 0.371490478515625, 0.95947265625, 0.1831817626953125, 0.3742523193359375, 0.3826904296875, 0.861083984375, 0.6502685546875, 0.038970947265625, 0.73333740234375, 0.1178741455078125, 0.9244537353515625, 0.5124053955078125, 0.6176910400390625, 0.87396240234375, 0.8814239501953125, 0.007049560546875, 0.3448638916015625, 0.4371490478515625, 0.81292724609375, 0.113616943359375, 0.827362060546875, 0.003173828125, 0.922119140625, 0.2520294189453125, 0.8362579345703125, 0.2641448974609375, 0.3134307861328125, 0.02288818359375, 0.1821441650390625, 0.050689697265625, 0.11724853515625, 0.2096710205078125, 0.83612060546875, 0.351715087890625, 0.4577789306640625, 0.573516845703125, 0.965240478515625, 0.097015380859375, 0.5550689697265625, 0.5771636962890625, 0.591827392578125, 0.6302337646484375, 0.6676025390625, 0.701385498046875, 0.364654541015625, 0.9801177978515625, 0.9024200439453125, 0.5795135498046875, 0.3697357177734375, 0.1057281494140625, 0.7754058837890625, 0.6618804931640625, 0.81573486328125, 0.38134765625, 0.1421661376953125, 0.91015625, 0.9703521728515625, 0.3384246826171875, 0.170867919921875, 0.1365814208984375, 0.324676513671875, 0.7737579345703125, 0.049957275390625, 0.9136962890625, 0.7998199462890625, 0.670928955078125, 0.8528289794921875, 0.740936279296875, 0.0799407958984375, 0.0478668212890625, 0.464263916015625, 0.98785400390625, 0.8161773681640625, 0.7834625244140625, 0.2657318115234375, 0.1285400390625, 0.7269744873046875, 0.440155029296875, 0.2507171630859375, 0.8931427001953125, 0.2960968017578125, 0.692474365234375, 0.058746337890625, 0.7562103271484375, 0.5970306396484375, 0.061859130859375, 0.3756256103515625, 0.935455322265625, 0.0393218994140625, 0.4842681884765625, 0.4930572509765625, 0.3031768798828125, 0.51483154296875, 0.777618408203125, 0.0358123779296875, 0.5897064208984375, 0.8446197509765625, 0.9205169677734375, 0.3069610595703125, 0.681793212890625, 0.005523681640625, 0.74420166015625, 0.5926055908203125, 0.737030029296875, 0.007476806640625, 0.8360137939453125, 0.09765625, 0.754730224609375, 0.0779876708984375, 0.9641876220703125, 0.005096435546875, 0.775177001953125, 0.1124267578125, 0.8760528564453125, 0.60797119140625, 0.93658447265625, 0.6672821044921875, 0.42425537109375, 0.299835205078125, 0.4573211669921875, 0.05816650390625, 0.87646484375, 0.7377777099609375, 0.1951446533203125, 0.8684234619140625, 0.9501800537109375, 0.4232330322265625, 0.586822509765625, 0.2926483154296875, 0.313323974609375, 0.441925048828125, 0.98614501953125, 0.1744842529296875, 0.190826416015625, 0.7625885009765625, 0.228485107421875, 0.367218017578125, 0.259490966796875, 0.916900634765625, 0.6679840087890625, 0.61273193359375, 0.1262664794921875, 0.6305389404296875, 0.6632537841796875, 0.429290771484375, 0.6641082763671875, 0.2381744384765625, 0.248016357421875, 0.1696624755859375, 0.1254425048828125, 0.0945281982421875, 0.9752655029296875, 0.45123291015625, 0.749053955078125, 0.6322479248046875, 0.425933837890625, 0.6647186279296875, 0.1666107177734375, 0.829925537109375, 0.5206756591796875, 0.450653076171875, 0.6942596435546875, 0.4282073974609375, 0.9127960205078125, 0.46661376953125, 0.76165771484375, 0.3954315185546875, 0.6386566162109375, 0.0329437255859375, 0.9835968017578125, 0.956817626953125, 0.2858734130859375, 0.207763671875, 0.6851348876953125, 0.1072235107421875, 0.8585205078125, 0.1153717041015625, 0.217559814453125, 0.9747314453125, 0.605682373046875, 0.9037017822265625, 0.4829559326171875, 0.498931884765625, 0.3913726806640625, 0.92547607421875, 0.8660430908203125, 0.9615936279296875, 0.4999847412109375, 0.626739501953125, 0.101806640625, 0.3052215576171875, 0.005584716796875, 0.072021484375, 0.684478759765625, 0.935546875, 0.8910369873046875, 0.4698944091796875, 0.4601898193359375, 0.96942138671875, 0.0926361083984375, 0.815338134765625, 0.9761199951171875, 0.4730987548828125, 0.7854156494140625, 0.9927215576171875, 0.8431854248046875, 0.983245849609375, 0.9291534423828125, 0.4676666259765625, 0.1832733154296875, 0.76837158203125, 0.15301513671875, 0.4760284423828125, 0.9760284423828125, 0.614715576171875, 0.9965972900390625, 0.2398223876953125, 0.1523284912109375, 0.5815277099609375, 0.8740234375, 0.7330169677734375, 0.3979949951171875, 0.25616455078125, 0.485565185546875, 0.788970947265625, 0.3274383544921875, 0.9495849609375, 0.0535888671875, 0.542724609375, 0.107025146484375, 0.2810821533203125, 0.328765869140625, 0.1099853515625, 0.6648406982421875, 0.252777099609375, 0.236297607421875, 0.862396240234375, 0.3482513427734375, 0.0609130859375, 0.300079345703125, 0.311248779296875, 0.85198974609375, 0.885955810546875, 0.453155517578125, 0.331268310546875, 0.3153076171875, 0.9884185791015625, 0.680267333984375, 0.1058349609375, 0.463836669921875, 0.7884063720703125, 0.2097625732421875, 0.54461669921875, 0.4944000244140625, 0.3417205810546875, 0.8768157958984375, 0.2713165283203125, 0.1866607666015625, 0.6142730712890625, 0.1865386962890625, 0.2742462158203125, 0.920654296875, 0.766632080078125, 0.332489013671875, 0.551300048828125, 0.6981964111328125, 0.18121337890625, 0.98712158203125, 0.5607147216796875, 0.4878387451171875, 0.555084228515625, 0.9674224853515625, 0.3700103759765625, 0.23590087890625, 0.3027801513671875, 0.8463134765625, 0.83905029296875, 0.935028076171875, 0.7382965087890625, 0.5735321044921875, 0.131622314453125, 0.899261474609375, 0.97735595703125, 0.6331787109375, 0.652008056640625, 0.040557861328125, 0.894866943359375, 0.5637969970703125, 0.78082275390625, 0.1419525146484375, 0.26580810546875, 0.2901458740234375, 0.374420166015625, 0.00604248046875, 0.7849578857421875, 0.521820068359375, 0.8477935791015625, 0.775146484375, 0.116546630859375, 0.246429443359375, 0.3477630615234375, 0.2785491943359375, 0.9326019287109375, 0.809661865234375, 0.064849853515625, 0.9539794921875, 0.394683837890625, 0.1818084716796875, 0.824066162109375, 0.6889801025390625, 0.5177154541015625, 0.7262115478515625, 0.754669189453125, 0.155670166015625, 0.7128143310546875, 0.264495849609375, 0.48651123046875, 0.8046875, 0.638458251953125, 0.9145965576171875, 0.3179168701171875, 0.67083740234375, 0.2945404052734375, 0.752685546875, 0.365081787109375, 0.3342132568359375, 0.117706298828125, 0.5573272705078125, 0.508453369140625, 0.8468017578125, 0.9787750244140625, 0.6836090087890625, 0.856292724609375, 0.118316650390625, 0.90478515625, 0.1448974609375, 0.789825439453125, 0.1092987060546875, 0.407440185546875, 0.65167236328125, 0.8882904052734375, 0.6982269287109375, 0.8637847900390625, 0.67083740234375, 0.4414825439453125, 0.0753173828125, 0.8420562744140625, 0.718658447265625, 0.26934814453125, 0.2224273681640625, 0.7277069091796875, 0.2019805908203125, 0.60528564453125, 0.093414306640625, 0.317718505859375, 0.4971160888671875, 0.875640869140625, 0.8987274169921875, 0.33575439453125, 0.4582977294921875, 0.3602447509765625, 0.2897491455078125, 0.36224365234375, 0.31732177734375, 0.7889556884765625, 0.515838623046875, 0.01287841796875, 0.362457275390625, 0.44000244140625, 0.6201934814453125, 0.307647705078125, 0.733489990234375, 0.1672210693359375, 0.427398681640625, 0.3734130859375, 0.7437896728515625, 0.7252044677734375, 0.163909912109375, 0.892852783203125, 0.66046142578125, 0.3554229736328125, 0.6113433837890625, 0.3732147216796875, 0.569793701171875, 0.6125030517578125, 0.367767333984375, 0.417022705078125, 0.9792327880859375, 0.26806640625, 0.86883544921875, 0.6390228271484375, 0.76373291015625, 0.3912811279296875, 0.6724853515625, 0.41943359375, 0.0578155517578125, 0.9444427490234375, 0.57305908203125, 0.3416748046875, 0.488372802734375, 0.086578369140625, 0.6912841796875, 0.4115142822265625, 0.0914306640625, 0.2478790283203125, 0.218597412109375, 0.6549224853515625, 0.743072509765625, 0.672088623046875, 0.5297393798828125, 0.931854248046875, 0.2677764892578125, 0.7013397216796875, 0.1908111572265625, 0.6555023193359375, 0.5903472900390625, 0.561492919921875, 0.7882080078125, 0.9861907958984375, 0.2683868408203125, 0.2338409423828125, 0.330474853515625, 0.4951171875, 0.7176666259765625, 0.256744384765625, 0.06170654296875, 0.5579681396484375, 0.699676513671875, 0.918701171875, 0.2366943359375, 0.6011962890625, 0.7503509521484375, 0.87176513671875, 0.7836761474609375, 0.3551788330078125, 0.1880035400390625, 0.8833160400390625, 0.124053955078125, 0.9925384521484375, 0.528564453125, 0.6626129150390625, 0.9182281494140625, 0.5442962646484375, 0.521331787109375, 0.3837432861328125, 0.586761474609375, 0.20654296875, 0.581298828125, 0.54833984375, 0.391448974609375, 0.377899169921875, 0.451690673828125, 0.8419036865234375, 0.454132080078125, 0.211029052734375, 0.74176025390625, 0.6188507080078125, 0.845458984375, 0.054412841796875, 0.048187255859375, 0.2214202880859375, 0.9638519287109375, 0.2384033203125, 0.35052490234375, 0.472564697265625, 0.590484619140625, 0.63836669921875, 0.50927734375, 0.1360321044921875, 0.3629302978515625, 0.1018218994140625, 0.8783721923828125, 0.4423980712890625, 0.7767181396484375, 0.9384307861328125, 0.196441650390625, 0.8589630126953125, 0.304656982421875, 0.9021759033203125, 0.357025146484375, 0.370635986328125, 0.9696807861328125, 0.2554168701171875, 0.28887939453125, 0.278839111328125, 0.7411346435546875, 0.9649658203125, 0.46759033203125, 0.81683349609375, 0.9698028564453125, 0.4077606201171875, 0.6182403564453125, 0.815216064453125, 0.0037994384765625, 0.890838623046875, 0.8009033203125, 0.892547607421875, 0.88653564453125, 0.2029876708984375, 0.693511962890625, 0.53021240234375, 0.9490509033203125, 0.1884918212890625, 0.7432861328125, 0.3928985595703125, 0.3501739501953125, 0.017578125, 0.037628173828125, 0.5227813720703125, 0.0747222900390625, 0.0816497802734375, 0.954254150390625, 0.6703643798828125, 0.660675048828125, 0.1580047607421875, 0.6503753662109375, 0.4146270751953125, 0.46502685546875, 0.6838226318359375, 0.6780242919921875, 0.5230560302734375, 0.50732421875, 0.3929290771484375, 0.711944580078125, 0.7647857666015625, 0.409088134765625, 0.61065673828125, 0.3537139892578125, 0.4837799072265625, 0.190643310546875, 0.531280517578125, 0.4060821533203125, 0.10052490234375, 0.828460693359375, 0.138946533203125, 0.5239410400390625, 0.034637451171875, 0.4743804931640625, 0.680206298828125, 0.55841064453125, 0.78594970703125, 0.4345855712890625, 0.4792633056640625, 0.4133758544921875, 0.1215972900390625, 0.574005126953125, 0.5224151611328125, 0.6989593505859375, 0.644256591796875, 0.9881439208984375, 0.73126220703125, 0.2403106689453125, 0.014923095703125, 0.1058197021484375, 0.49151611328125, 0.5655059814453125, 0.7450408935546875, 0.29083251953125, 0.846832275390625, 6.103515625e-05, 0.2854766845703125, 0.9048614501953125, 0.99285888671875, 0.6922454833984375, 0.6488800048828125, 0.013153076171875, 0.6972198486328125, 0.0539093017578125, 0.4715728759765625, 0.0865936279296875, 0.8410491943359375, 0.3198089599609375, 0.7223663330078125, 0.91302490234375, 0.3916778564453125, 0.3488006591796875, 0.18072509765625, 0.3344268798828125, 0.2792816162109375, 0.430511474609375, 0.08209228515625, 0.5677490234375, 0.740875244140625, 0.46038818359375, 0.662811279296875, 0.3736419677734375, 0.2821044921875, 0.07940673828125, 0.8420562744140625, 0.7516326904296875, 0.342010498046875, 0.7529449462890625, 0.6914520263671875, 0.4224090576171875, 0.0312652587890625, 0.7132568359375, 0.440277099609375, 0.6719970703125, 0.7476348876953125, 0.28094482421875, 0.0946197509765625, 0.063995361328125, 0.1410675048828125, 0.5379180908203125, 0.90594482421875, 0.2207489013671875, 0.6587371826171875, 0.8145904541015625, 0.6691741943359375, 0.7215118408203125, 0.814697265625, 0.77313232421875, 0.6250762939453125, 0.6527252197265625, 0.235443115234375, 0.29644775390625, 0.7835693359375, 0.510162353515625, 0.164520263671875, 0.8854522705078125, 0.583953857421875, 0.8759002685546875, 0.4669952392578125, 0.354949951171875, 0.691650390625, 0.1065673828125, 0.8979644775390625, 0.7788848876953125, 0.2114715576171875, 0.968719482421875, 0.578521728515625, 0.5624847412109375, 0.9588623046875, 0.6179656982421875, 0.5817413330078125, 0.270111083984375, 0.4788360595703125, 0.266754150390625, 0.9755096435546875, 0.004852294921875, 0.6922607421875, 0.67010498046875, 0.6187286376953125, 0.0484771728515625, 0.4680023193359375, 0.834808349609375, 0.069793701171875, 0.3991241455078125, 0.9598236083984375, 0.618499755859375, 0.0808563232421875, 0.51934814453125, 0.4929962158203125, 0.0313568115234375, 0.9341583251953125, 0.1380615234375, 0.7524261474609375, 0.55047607421875, 0.28192138671875, 0.35040283203125, 0.2829742431640625, 0.441314697265625, 0.19317626953125, 0.3416290283203125, 0.1824493408203125, 0.4867401123046875, 0.29833984375, 0.05902099609375, 0.008880615234375, 0.8666839599609375, 0.22747802734375, 0.1923828125, 0.079345703125, 0.4275360107421875, 0.82147216796875, 0.171295166015625, 0.6329193115234375, 0.2996826171875, 0.2464752197265625, 0.9954833984375, 0.4659576416015625, 0.813507080078125, 0.579315185546875, 0.796173095703125, 0.0715484619140625, 0.754669189453125, 0.2331390380859375, 0.5977935791015625, 0.42559814453125, 0.7353515625, 0.15643310546875, 0.2565765380859375, 0.7959442138671875, 0.260986328125, 0.8822174072265625, 0.4925994873046875, 0.09051513671875, 0.7033233642578125, 0.01678466796875, 0.7234039306640625, 0.616851806640625, 0.42144775390625, 0.90606689453125, 0.119232177734375, 0.49102783203125, 0.1021728515625, 0.0777740478515625, 0.5268096923828125, 0.139892578125, 0.3661956787109375, 0.4696502685546875, 0.5099029541015625, 0.030487060546875, 0.8689422607421875, 0.8346405029296875, 0.262359619140625, 0.0708770751953125, 0.40716552734375, 0.1551055908203125, 0.92156982421875, 0.3474578857421875, 0.4776611328125, 0.3866729736328125, 0.5717926025390625, 0.1405029296875, 0.3365631103515625, 0.504547119140625, 0.3556976318359375, 0.68890380859375, 0.1692962646484375, 0.6229400634765625, 0.895904541015625, 0.48150634765625, 0.7124786376953125, 0.8692474365234375, 0.9018402099609375, 0.47607421875, 0.5717315673828125, 0.0404815673828125, 0.6576690673828125, 0.47991943359375, 0.2169647216796875, 0.40509033203125, 0.8402099609375, 0.4541473388671875, 0.89990234375, 0.2325592041015625, 0.3300323486328125, 0.5062713623046875, 0.1222686767578125, 0.74481201171875, 0.2686767578125, 0.7452850341796875, 0.3238983154296875, 0.196197509765625, 0.5844879150390625, 0.2330169677734375, 0.5359344482421875, 0.6192779541015625, 0.6552886962890625, 0.5346832275390625, 0.3106842041015625, 0.5247955322265625, 0.019012451171875, 0.222930908203125, 0.1790313720703125, 0.5680389404296875, 0.180511474609375, 0.4698028564453125, 0.266754150390625, 0.0709228515625, 0.7996826171875, 0.914581298828125, 0.4430389404296875, 0.0489959716796875, 0.8434600830078125, 0.6446685791015625, 0.369476318359375, 0.2720947265625, 0.702972412109375, 0.9758453369140625, 0.8705596923828125, 0.84423828125, 0.7301788330078125, 0.6275787353515625, 0.4365234375, 0.6065521240234375, 0.9634246826171875, 0.429840087890625, 0.1669921875, 0.663360595703125, 0.24652099609375, 0.5473785400390625, 0.683746337890625, 0.0334625244140625, 0.2334747314453125, 0.297821044921875, 0.629547119140625, 0.029388427734375, 0.07794189453125, 0.4337005615234375, 0.805328369140625, 0.1154937744140625, 0.31927490234375, 0.0200653076171875, 0.0165252685546875, 0.4536895751953125, 0.815582275390625, 0.4145355224609375, 0.0926666259765625, 0.7546539306640625, 0.9137725830078125, 0.072357177734375, 0.525360107421875, 0.754241943359375, 0.6156158447265625, 0.990936279296875, 0.409088134765625, 0.8429107666015625, 0.219573974609375, 0.4471588134765625, 0.8991546630859375, 0.9248809814453125, 0.081085205078125, 0.1060791015625, 0.2327728271484375, 0.72064208984375, 0.4281005859375, 0.406402587890625, 0.394256591796875, 0.949066162109375, 0.694366455078125, 0.42095947265625, 0.9152984619140625, 0.0748443603515625, 0.66937255859375, 0.1808929443359375, 0.23321533203125, 0.4078369140625, 0.044158935546875, 0.5254974365234375, 0.868682861328125, 0.121826171875, 0.3328094482421875, 0.12066650390625, 0.0278472900390625, 0.29998779296875, 0.800872802734375, 0.7681884765625, 0.45867919921875, 0.5357818603515625, 0.6770172119140625, 0.549163818359375, 0.8544921875, 0.4794769287109375, 0.4706878662109375, 0.94879150390625, 0.8807373046875, 0.5009765625, 0.8183746337890625, 0.621551513671875, 0.7676239013671875, 0.667205810546875, 0.3313446044921875, 0.562957763671875, 0.9609832763671875, 0.6547698974609375, 0.2315521240234375, 0.7052154541015625, 0.5247039794921875, 0.235809326171875, 0.990234375, 0.5306854248046875, 0.76727294921875, 0.8527679443359375, 0.7003173828125, 0.412841796875, 0.2985687255859375, 0.2756805419921875, 0.133819580078125, 0.4012451171875, 0.3650054931640625, 0.76324462890625, 0.0544891357421875, 0.871734619140625, 0.723602294921875, 0.9641571044921875, 0.43951416015625, 0.22247314453125, 0.04473876953125, 0.535614013671875, 0.1359710693359375, 0.65924072265625, 0.0907440185546875, 0.2047576904296875, 0.8000946044921875, 0.9058837890625, 0.016265869140625, 0.170440673828125, 0.53997802734375, 0.49298095703125, 0.9211578369140625, 0.1183013916015625, 0.1427001953125, 0.3220672607421875, 0.0152130126953125, 0.1211700439453125, 0.771728515625, 0.1933135986328125, 0.441619873046875, 0.260406494140625, 0.89739990234375, 0.21533203125, 0.104156494140625, 0.4619598388671875, 0.2430877685546875, 0.508056640625, 0.5589141845703125, 0.2718505859375, 0.2698974609375, 0.449493408203125, 0.8271942138671875, 0.0432586669921875, 0.2544708251953125, 0.4420928955078125, 0.6490325927734375, 0.77850341796875, 0.7428131103515625, 0.2367095947265625, 0.7337646484375, 0.91925048828125, 0.322723388671875, 0.0590667724609375, 0.7938079833984375, 0.588958740234375, 0.878204345703125, 0.5817718505859375, 0.536773681640625, 0.7916259765625, 0.905059814453125, 0.340667724609375, 0.6025543212890625, 0.0861968994140625, 0.916961669921875, 0.3414459228515625, 0.92633056640625, 0.0198211669921875, 0.54876708984375, 0.429351806640625, 0.4529876708984375, 0.3095550537109375, 0.44140625, 0.438140869140625, 0.63037109375, 0.424652099609375, 0.6756591796875, 0.1372528076171875, 0.90069580078125, 0.9770965576171875, 0.8770751953125, 0.8323822021484375, 0.3784942626953125, 0.613494873046875, 0.1260833740234375, 0.3979644775390625, 0.1707916259765625, 0.730621337890625, 0.0663299560546875, 0.9955291748046875, 0.4832305908203125, 0.4754486083984375, 0.911712646484375, 0.5316009521484375, 0.7235260009765625, 0.13909912109375, 0.1990966796875, 0.1863250732421875, 0.5371246337890625, 0.543060302734375, 0.9430999755859375, 0.6662750244140625, 0.337371826171875, 0.085723876953125, 0.132904052734375, 0.7086639404296875, 0.6008758544921875, 0.636566162109375, 0.2925872802734375, 0.7632598876953125, 0.1609039306640625, 0.512115478515625, 0.6168212890625, 0.336883544921875, 0.5487213134765625, 0.5537872314453125, 0.690338134765625, 0.7299957275390625, 0.364990234375, 0.823699951171875, 0.86627197265625, 0.930419921875, 0.9503326416015625, 0.9087371826171875, 0.73095703125, 0.15509033203125, 0.2732086181640625, 0.0721893310546875, 0.33319091796875, 0.511749267578125, 0.8350982666015625, 0.7871551513671875, 0.6424560546875, 0.452392578125, 0.7582550048828125, 0.3677215576171875, 0.535369873046875, 0.0285797119140625, 0.0440673828125, 0.731903076171875, 0.0889434814453125, 0.29644775390625, 0.50439453125, 0.4911956787109375, 0.8602142333984375, 0.9159088134765625, 0.2141265869140625, 0.5800018310546875, 0.488739013671875, 0.0927276611328125, 0.1238250732421875, 0.4767303466796875, 0.437896728515625, 0.5727691650390625, 0.4202880859375, 0.1547698974609375, 0.7625885009765625, 0.18505859375, 0.158233642578125, 0.5165863037109375, 0.255615234375, 0.2584991455078125, 0.50927734375, 0.1818389892578125, 0.2314910888671875, 0.521942138671875, 0.8264007568359375, 0.6514739990234375, 0.03704833984375, 0.85906982421875, 0.1431427001953125, 0.781005859375, 0.030181884765625, 0.4727325439453125, 0.1768646240234375, 0.9912261962890625, 0.15252685546875, 0.221923828125, 0.0708465576171875, 0.0287628173828125, 0.95159912109375, 0.0136260986328125, 0.1681060791015625, 0.8922271728515625, 0.8713531494140625, 0.0654144287109375, 0.1931610107421875, 0.062164306640625, 0.1531219482421875, 0.7372894287109375, 0.1896514892578125, 0.0241241455078125, 0.0634002685546875, 0.703765869140625, 0.7914276123046875, 0.561065673828125, 0.6764068603515625, 0.0394439697265625, 0.398284912109375, 0.00921630859375, 0.0117340087890625, 0.119354248046875, 0.6876220703125, 0.662841796875, 0.9032135009765625, 0.8896026611328125, 0.0236968994140625, 0.2530059814453125, 0.9465789794921875, 0.9249725341796875, 0.56298828125, 0.8831024169921875, 0.220733642578125, 0.3615570068359375, 0.3925933837890625, 0.4631195068359375, 0.5880889892578125, 0.66986083984375, 0.9186248779296875, 0.23712158203125, 0.1292724609375, 0.7628326416015625, 0.268798828125, 0.962860107421875, 0.8899383544921875, 0.498443603515625, 0.0565185546875, 0.865753173828125, 0.356201171875, 0.632843017578125, 0.961883544921875, 0.857879638671875, 0.3742218017578125, 0.963134765625, 0.7386627197265625, 0.478729248046875, 0.4008941650390625, 0.626251220703125, 0.5904998779296875, 0.0223846435546875, 0.1688690185546875, 0.5225677490234375, 0.7730712890625, 0.9735565185546875, 0.1124267578125, 0.856414794921875, 0.2332611083984375, 0.322357177734375, 0.3551025390625, 0.938568115234375, 0.9756011962890625, 0.62017822265625, 0.5837554931640625, 0.8734893798828125, 0.0269317626953125, 0.107666015625, 0.1280364990234375, 0.989349365234375, 0.3571929931640625, 0.665740966796875, 0.1668243408203125, 0.2314605712890625, 0.4480133056640625, 0.138031005859375, 0.3248443603515625, 0.365142822265625, 0.86285400390625, 0.50830078125, 0.755462646484375, 0.1078338623046875, 0.346405029296875, 0.7175750732421875, 0.7691497802734375, 0.82537841796875, 0.27471923828125, 0.0724945068359375, 0.67462158203125, 0.9510345458984375, 0.3243255615234375, 0.3091583251953125, 0.8030242919921875, 0.4525146484375, 0.5782623291015625, 0.4407196044921875, 0.993927001953125, 0.1114349365234375, 0.0843963623046875, 0.40472412109375, 0.3350067138671875, 0.8014678955078125, 0.4322967529296875, 0.693756103515625, 0.246490478515625, 0.316131591796875, 0.456695556640625, 0.1356201171875, 0.6392822265625, 0.0414886474609375, 0.2640838623046875, 0.69427490234375, 0.993408203125, 0.5214691162109375, 0.568572998046875, 0.6639862060546875, 0.18707275390625, 0.1704559326171875, 0.4239044189453125, 0.281707763671875, 0.8279571533203125, 0.240447998046875, 0.8942413330078125, 0.16180419921875, 0.0642242431640625, 0.124725341796875, 0.3032379150390625, 0.6687774658203125, 0.3685302734375, 0.59375, 0.6441802978515625, 0.5415191650390625, 0.21405029296875, 0.4099273681640625, 0.0650177001953125, 0.82525634765625, 0.44476318359375, 0.481475830078125, 0.3195343017578125, 0.3598785400390625, 0.617919921875, 0.2577667236328125, 0.9125823974609375, 0.316864013671875, 0.686981201171875, 0.879364013671875, 0.1290283203125, 0.6432342529296875, 0.0033111572265625, 0.4359588623046875, 0.9666290283203125, 0.5710296630859375, 0.926605224609375, 0.51483154296875, 0.59539794921875, 0.19671630859375, 0.9447784423828125, 0.2113800048828125, 0.7069091796875, 0.4817047119140625, 0.4390106201171875, 0.2997894287109375, 0.42657470703125, 0.4027862548828125, 0.7794342041015625, 0.1908721923828125, 0.4502105712890625, 0.784515380859375, 0.316375732421875, 0.720184326171875, 0.9352874755859375, 0.2183380126953125, 0.0660858154296875, 0.902587890625, 0.965576171875, 0.272674560546875, 0.878570556640625, 0.88165283203125, 0.761383056640625, 0.277618408203125, 0.801666259765625, 0.6390533447265625, 0.4160308837890625, 0.3618927001953125, 0.9118499755859375, 0.05413818359375, 0.9388427734375, 0.52777099609375, 0.6240692138671875, 0.23065185546875, 0.6544036865234375, 0.4781646728515625, 0.6312255859375, 0.20404052734375, 0.7940673828125, 0.7041473388671875, 0.846221923828125, 0.64898681640625, 0.3666839599609375, 0.6551513671875, 0.2554473876953125, 0.1003570556640625, 0.9313201904296875, 0.3046722412109375, 0.248687744140625, 0.4748077392578125, 0.2978668212890625, 0.006927490234375, 0.07269287109375, 0.721435546875, 0.2427215576171875, 0.8931427001953125, 0.6024627685546875, 0.718109130859375, 0.594879150390625, 0.5882110595703125, 0.2108154296875, 0.2220458984375, 0.9826507568359375, 0.6361236572265625, 0.17437744140625, 0.2479095458984375, 0.7232666015625, 0.9611053466796875, 0.8181304931640625, 0.60565185546875, 0.3161773681640625, 0.6372528076171875, 0.565582275390625, 0.47564697265625, 0.8436431884765625, 0.619720458984375, 0.8709869384765625, 0.0223541259765625, 0.734893798828125, 0.56915283203125, 0.2826385498046875, 0.356231689453125, 0.2199859619140625, 0.7049713134765625, 0.2661895751953125, 0.2960662841796875, 0.788055419921875, 0.435760498046875, 0.843505859375, 0.1514434814453125, 0.01654052734375, 0.817657470703125, 0.18902587890625, 0.778900146484375, 0.7376556396484375, 0.4375152587890625, 0.5648956298828125, 0.689666748046875, 0.36480712890625, 0.1259765625, 0.095062255859375, 0.061187744140625, 0.0531158447265625, 0.7261810302734375, 0.5198974609375, 0.73065185546875, 0.5350189208984375, 0.435272216796875, 0.17047119140625, 0.920623779296875, 0.4912261962890625, 0.5695648193359375, 0.007904052734375, 0.4464263916015625, 0.230865478515625, 0.826690673828125, 0.644744873046875, 0.8043975830078125, 0.590911865234375, 0.3527374267578125, 0.7909393310546875, 0.798126220703125, 0.73675537109375, 0.7352142333984375, 0.5989532470703125, 0.3484649658203125, 0.873809814453125, 0.886810302734375, 0.7756805419921875, 0.9057769775390625, 0.7825775146484375, 0.8056488037109375, 0.3619537353515625, 0.65045166015625, 0.147857666015625, 0.097900390625, 0.907379150390625, 0.430328369140625, 0.3220977783203125, 0.1046905517578125, 0.7128448486328125, 0.72393798828125, 0.0604705810546875, 0.70819091796875, 0.786224365234375, 0.59161376953125, 0.8024444580078125, 0.471405029296875, 0.7119598388671875, 0.7324371337890625, 0.3416900634765625, 0.4404449462890625, 0.769287109375, 0.301849365234375, 0.5464019775390625, 0.7307891845703125, 0.561309814453125, 0.3429412841796875, 0.5151824951171875, 0.606353759765625, 0.78424072265625, 0.525238037109375, 0.4874725341796875, 0.3208160400390625, 0.3341217041015625, 0.3447723388671875, 0.958587646484375, 0.1589508056640625, 0.6902618408203125, 0.0837554931640625, 0.8587799072265625, 0.8306732177734375, 0.9292449951171875, 0.621124267578125, 0.63885498046875, 0.45892333984375, 0.7976226806640625, 0.705841064453125, 0.569244384765625, 0.9016571044921875, 0.8379058837890625, 0.81182861328125, 0.28265380859375, 0.5096435546875, 0.03314208984375, 0.575439453125, 0.5234222412109375, 0.3927459716796875, 0.5544891357421875, 0.033843994140625, 0.2027740478515625, 0.8901214599609375, 0.16082763671875, 0.4251556396484375, 0.2709197998046875, 0.2623748779296875, 0.816650390625, 0.631622314453125, 0.20745849609375, 0.476470947265625, 0.1781463623046875, 0.9517974853515625, 0.5091094970703125, 0.2563629150390625, 0.6944732666015625, 0.6813507080078125, 0.609832763671875, 0.183807373046875, 0.692291259765625, 0.0462493896484375, 0.2518310546875, 0.287445068359375, 0.119415283203125, 0.780242919921875, 0.4441680908203125, 0.81982421875, 0.9672393798828125, 0.234130859375, 0.276702880859375, 0.3074188232421875, 0.243682861328125, 0.4845733642578125, 0.1001739501953125, 0.0508270263671875, 0.7248382568359375, 0.7151336669921875, 0.4020538330078125, 0.8455810546875, 0.607147216796875, 0.66888427734375, 0.3236236572265625, 0.68438720703125, 0.7847900390625, 0.196197509765625, 0.3563995361328125, 0.8089752197265625, 0.0768280029296875, 0.2879180908203125, 0.581207275390625, 0.7740325927734375, 0.70050048828125, 0.4778594970703125, 0.238372802734375, 0.50244140625, 0.518829345703125, 0.406494140625, 0.1601715087890625, 0.9782562255859375, 0.09246826171875, 0.930511474609375, 0.5875091552734375, 0.4757080078125, 0.001739501953125, 0.045867919921875, 0.7767181396484375, 0.510498046875, 0.4826202392578125, 0.117095947265625, 0.7321929931640625, 0.8810882568359375, 0.5189361572265625, 0.9637908935546875, 0.690826416015625, 0.22589111328125, 0.6073455810546875, 0.857177734375, 0.1534576416015625, 0.74212646484375, 0.1056060791015625, 0.378875732421875, 0.27691650390625, 0.558929443359375, 0.770355224609375, 0.0581817626953125, 0.7424468994140625, 0.2381744384765625, 0.1244659423828125, 0.4742279052734375, 0.2461700439453125, 0.778900146484375, 0.3288421630859375, 0.31927490234375, 0.87823486328125, 0.0857391357421875, 0.163543701171875, 0.848175048828125, 0.1237945556640625, 0.3300018310546875, 0.2126617431640625, 0.5297698974609375, 0.1471710205078125, 0.2051239013671875, 0.9781494140625, 0.380279541015625, 0.341339111328125, 0.5251007080078125, 0.838531494140625, 0.6566314697265625, 0.714263916015625, 0.1597747802734375, 0.473541259765625, 0.51177978515625, 0.33404541015625, 0.350067138671875, 0.177734375, 0.5592498779296875, 0.2905426025390625, 0.723724365234375, 0.068756103515625, 0.1969757080078125, 0.5361785888671875, 0.0491790771484375, 0.32342529296875, 0.6459197998046875, 0.581390380859375, 0.8010101318359375, 0.323974609375, 0.5305023193359375, 0.9916534423828125, 0.8453216552734375, 0.2246551513671875, 0.737213134765625, 0.5393218994140625, 0.1281280517578125, 0.2580108642578125, 0.9946136474609375, 0.783355712890625, 0.250396728515625, 0.0030517578125, 0.282257080078125, 0.0252685546875, 0.7630462646484375, 0.2534637451171875, 0.031890869140625, 0.3747100830078125, 0.6823272705078125, 0.5490264892578125, 0.24517822265625, 0.828582763671875, 0.2492218017578125, 0.77020263671875, 0.7515411376953125, 0.0360107421875, 0.300140380859375, 0.85223388671875, 0.2456817626953125, 0.8942718505859375, 0.008697509765625, 0.2989654541015625, 0.447265625, 0.3161163330078125, 0.7999267578125, 0.168731689453125, 0.0117340087890625, 0.245849609375, 0.0311737060546875, 0.2278900146484375, 0.866180419921875, 0.7455902099609375, 0.7494964599609375, 0.47247314453125, 0.710693359375, 0.895538330078125, 0.842193603515625, 0.2237091064453125, 0.5322265625, 0.0896759033203125, 0.867828369140625, 0.90008544921875, 0.5582122802734375, 0.276397705078125, 0.7334442138671875, 0.47967529296875, 0.475799560546875, 0.8505401611328125, 0.8015594482421875, 0.298309326171875, 0.397125244140625, 0.4527740478515625, 0.0713958740234375, 0.983795166015625, 0.3700408935546875, 0.1390533447265625, 0.816619873046875, 0.7344512939453125, 0.19940185546875, 0.5675506591796875, 0.9090576171875, 0.140625, 0.7003326416015625, 0.4601593017578125, 0.555206298828125, 0.2234039306640625, 0.5453033447265625, 0.3438720703125, 0.0421295166015625, 0.1269683837890625, 0.570709228515625, 0.6476898193359375, 0.9414520263671875, 0.596038818359375, 0.537841796875, 0.4511871337890625, 0.8085784912109375, 0.9399261474609375, 0.9160308837890625, 0.07000732421875, 0.9610595703125, 0.8545684814453125, 0.3673095703125, 0.2003021240234375, 0.2193603515625, 0.164764404296875, 0.7608642578125, 0.3477325439453125, 0.6268768310546875, 0.273468017578125, 0.5592803955078125, 0.1058807373046875, 0.6640472412109375, 0.2265777587890625, 0.091796875, 0.850677490234375, 0.214630126953125, 0.1641998291015625, 0.4713592529296875, 0.6445465087890625, 0.6420135498046875, 0.486297607421875, 0.308807373046875, 0.414642333984375, 0.1020660400390625, 0.8925323486328125, 0.6353607177734375, 0.8757171630859375, 0.38421630859375, 0.849945068359375, 0.938812255859375, 0.5086822509765625, 0.933197021484375, 0.264892578125, 0.8674163818359375, 0.5767974853515625, 0.2527618408203125, 0.684661865234375, 0.829864501953125, 0.7308197021484375, 0.8031768798828125, 0.252716064453125, 0.3150787353515625, 0.1480865478515625, 0.11859130859375, 0.102783203125, 0.128875732421875, 0.5411224365234375, 0.4123992919921875, 0.6849517822265625, 0.41253662109375, 0.0980072021484375, 0.272216796875, 0.917327880859375, 0.64923095703125, 0.5780792236328125, 0.1361846923828125, 0.7916717529296875, 0.9579010009765625, 0.8316497802734375, 0.6837615966796875, 0.0332183837890625, 0.19024658203125, 0.3663787841796875, 0.48089599609375, 0.5706939697265625, 0.3701019287109375, 0.93011474609375, 0.28985595703125, 0.4066314697265625, 0.94061279296875, 0.9941864013671875, 0.35955810546875, 0.648529052734375, 0.4128875732421875, 0.126434326171875, 0.8316802978515625, 0.3762054443359375, 0.30181884765625, 0.39178466796875, 0.50775146484375, 0.9073333740234375, 0.109619140625, 0.4723358154296875, 0.71875, 0.356536865234375, 0.1364288330078125, 0.606170654296875, 0.8425750732421875, 0.5543212890625, 0.0659637451171875, 0.7873687744140625, 0.957855224609375, 0.0667877197265625, 0.80712890625, 0.04241943359375, 0.1577911376953125, 0.516387939453125, 0.9564208984375, 0.073150634765625, 0.8695220947265625, 0.866912841796875, 0.9743194580078125, 0.6890716552734375, 0.09222412109375, 0.0494537353515625, 0.709197998046875, 0.7779083251953125, 0.4737701416015625, 0.53271484375, 0.49774169921875, 0.6487884521484375, 0.13787841796875, 0.896026611328125, 0.9795989990234375, 0.577880859375, 0.222747802734375, 0.2377166748046875, 0.1898651123046875, 0.3105010986328125, 0.7251434326171875, 0.97076416015625, 0.5707550048828125, 0.8442230224609375, 0.541015625, 0.9249420166015625, 0.629302978515625, 0.44757080078125, 0.58197021484375, 0.0134124755859375, 0.684234619140625, 0.9667816162109375, 0.2025909423828125, 0.8873443603515625, 0.4461517333984375, 0.1567230224609375, 0.1900787353515625, 0.1967926025390625, 0.162017822265625, 0.7663726806640625, 0.3478240966796875, 0.5297698974609375, 0.423583984375, 0.9084930419921875, 0.8675689697265625, 0.40679931640625, 0.7406768798828125, 0.239227294921875, 0.2590484619140625, 0.4345855712890625, 0.2799530029296875, 0.60028076171875, 0.9575042724609375, 0.7147064208984375, 0.8048858642578125, 0.5884552001953125, 0.7371826171875, 0.98345947265625, 0.0166015625, 0.8367156982421875, 0.49102783203125, 0.1705322265625, 0.545166015625, 0.1456451416015625, 0.23553466796875, 0.9590606689453125, 0.7204742431640625, 0.7888641357421875, 0.6922454833984375, 0.66546630859375, 0.173309326171875, 0.614532470703125, 0.625, 0.785186767578125, 0.738739013671875, 0.036285400390625, 0.941619873046875, 0.940765380859375, 0.7474822998046875, 0.229644775390625, 0.3393707275390625, 0.0615386962890625, 0.2134857177734375, 0.5358428955078125, 0.195404052734375, 0.06182861328125, 0.8206024169921875, 0.7986602783203125, 0.3390960693359375, 0.0980224609375, 0.8926544189453125, 0.3673248291015625, 0.8601226806640625, 0.9485015869140625, 0.5126953125, 0.1572418212890625, 0.761199951171875, 0.5993499755859375, 0.6496429443359375, 0.7290802001953125, 0.1611785888671875, 0.2970428466796875, 0.4024200439453125, 0.312957763671875, 0.89453125, 0.1668548583984375, 0.7830047607421875, 0.0210113525390625, 0.6995849609375, 0.8688812255859375, 0.242218017578125, 0.08868408203125, 0.5082855224609375, 0.7627716064453125, 0.283538818359375, 0.314361572265625, 0.9990386962890625, 0.9144287109375, 0.184722900390625, 0.6318359375, 0.0466766357421875, 0.7942352294921875, 0.1380767822265625, 0.6859893798828125, 0.2258758544921875, 0.6773223876953125, 0.7434844970703125, 0.43896484375, 0.29412841796875, 0.08880615234375, 0.4365234375, 0.8076171875, 0.2571258544921875, 0.66363525390625, 0.7866058349609375, 0.252777099609375, 0.1341400146484375, 0.5586700439453125, 0.10931396484375, 0.574127197265625, 0.402069091796875, 0.26593017578125, 0.382171630859375, 0.2996368408203125, 0.9463958740234375, 0.2171173095703125, 0.0557861328125, 0.4808807373046875, 0.8265838623046875, 0.0415802001953125, 0.8705596923828125, 0.20880126953125, 0.9272003173828125, 0.8831024169921875, 0.919097900390625, 0.36737060546875, 0.1277618408203125, 0.4036407470703125, 0.0435791015625, 0.3328857421875, 0.7710418701171875, 0.8946533203125, 0.614654541015625, 0.8481903076171875, 0.84295654296875, 0.396209716796875, 0.3872833251953125, 0.0813140869140625, 0.5686492919921875, 0.4529266357421875, 0.2486724853515625, 0.20941162109375, 0.061676025390625, 0.0740509033203125, 0.7809600830078125, 0.520172119140625, 0.76318359375, 0.693328857421875, 0.9578399658203125, 0.8833770751953125, 0.1902923583984375, 0.27435302734375, 0.79718017578125, 0.001708984375, 0.8593902587890625, 0.440338134765625, 0.4250640869140625, 0.5236663818359375, 0.15167236328125, 0.8385467529296875, 0.8152008056640625, 0.49725341796875, 0.679534912109375, 0.6300811767578125, 0.490386962890625, 0.3193359375, 0.1634521484375, 0.0408935546875, 0.1287078857421875, 0.201324462890625, 0.86822509765625, 0.1768646240234375, 0.82244873046875, 0.803070068359375, 0.4637908935546875, 0.964141845703125, 0.311676025390625, 0.54669189453125, 0.47344970703125, 0.3898162841796875, 0.1625213623046875, 0.5196685791015625, 0.9835968017578125, 0.6534423828125, 0.3398895263671875, 0.382568359375, 0.124542236328125, 0.545806884765625, 0.780731201171875, 0.567779541015625, 0.730712890625, 0.7464599609375, 0.560089111328125, 0.12933349609375, 0.877410888671875, 0.251007080078125, 0.2664794921875, 0.0232086181640625, 0.645172119140625, 0.742279052734375, 0.778106689453125, 0.63140869140625, 0.578460693359375, 0.31640625, 0.4599609375, 0.574554443359375, 0.053253173828125, 0.6306915283203125, 0.438873291015625, 0.4432220458984375, 0.9665069580078125, 0.732208251953125, 0.490020751953125, 0.003082275390625, 0.2770538330078125, 0.72760009765625, 0.7758941650390625, 0.0521392822265625, 0.7032012939453125, 0.913787841796875, 0.2181854248046875, 0.36578369140625, 0.5921783447265625, 0.626373291015625, 0.935516357421875, 0.4914703369140625, 0.5913848876953125, 0.959228515625, 0.92523193359375, 0.5567626953125, 0.1429290771484375, 0.7650604248046875, 0.1898040771484375, 0.0181121826171875, 0.5659027099609375, 0.8114166259765625, 0.8377532958984375, 0.073028564453125, 0.1753082275390625, 0.316986083984375, 0.8529205322265625, 0.4250640869140625, 0.0174102783203125, 0.51385498046875, 0.2137298583984375, 0.0860595703125, 0.61004638671875, 0.5821685791015625, 0.8640594482421875, 0.4026641845703125, 0.1362152099609375, 0.6750946044921875, 0.3700103759765625, 0.9658050537109375, 0.01898193359375, 0.517242431640625, 0.4844970703125, 0.3653106689453125, 0.8131561279296875, 0.390869140625, 0.6829833984375, 0.01953125, 0.61029052734375, 0.4782867431640625, 0.817718505859375, 0.4981231689453125, 0.1800079345703125, 0.73626708984375, 0.2084197998046875, 0.03753662109375, 0.7020721435546875, 0.9739837646484375, 0.1520538330078125, 0.3584747314453125, 0.7617340087890625, 0.24749755859375, 0.2005615234375, 0.369232177734375, 0.2910919189453125, 0.3665771484375, 0.300750732421875, 0.261260986328125, 0.1817626953125, 0.591949462890625, 0.7812042236328125, 0.472259521484375, 0.75341796875, 0.003875732421875, 0.608367919921875, 0.287200927734375, 0.924163818359375, 0.3765411376953125, 0.27960205078125, 0.857208251953125, 0.618377685546875, 0.747528076171875, 0.27154541015625, 0.4449920654296875, 0.6468963623046875, 0.2582550048828125, 0.4553680419921875, 0.397705078125, 0.3686065673828125, 0.438568115234375, 0.529022216796875, 0.804351806640625, 0.3430938720703125, 0.0488128662109375, 0.31048583984375, 0.0871124267578125, 0.952423095703125, 0.6532135009765625, 0.71044921875, 0.69573974609375, 0.3979034423828125, 0.422454833984375, 0.092376708984375, 0.430023193359375, 0.193450927734375, 0.2557220458984375, 0.6184539794921875, 0.2490234375, 0.464569091796875, 0.5442352294921875, 0.364898681640625, 0.9749755859375, 0.570404052734375, 0.31610107421875, 0.9622344970703125, 0.8921356201171875, 0.4449920654296875, 0.6288299560546875, 0.256591796875, 0.0842437744140625, 0.7484893798828125, 0.6576080322265625, 0.7930145263671875, 0.690093994140625, 0.793853759765625, 0.90679931640625, 0.7267608642578125, 0.497161865234375, 0.04351806640625, 0.6850128173828125, 0.2636566162109375, 0.4028472900390625, 0.7811126708984375, 0.8485260009765625, 0.974273681640625, 0.6379547119140625, 0.1748504638671875, 0.26031494140625, 0.511627197265625, 0.7995147705078125, 0.8623046875, 0.332611083984375, 0.124725341796875, 0.672821044921875, 0.49432373046875, 0.1886444091796875, 0.5908660888671875, 0.6653900146484375, 0.8638458251953125, 0.59649658203125, 0.2532196044921875, 0.8863067626953125, 0.6288299560546875, 0.257232666015625, 0.768829345703125, 0.295440673828125, 0.1086883544921875, 0.2589111328125, 0.46771240234375, 0.608673095703125, 0.4771728515625, 0.8412933349609375, 0.5304107666015625, 0.63751220703125, 0.9936981201171875, 0.83837890625, 0.3101348876953125, 0.6696624755859375, 0.4118804931640625, 0.1941680908203125, 0.21405029296875, 0.2700042724609375, 0.2873687744140625, 0.47650146484375, 0.9574127197265625, 0.787109375, 0.4245758056640625, 0.123687744140625, 0.9216156005859375, 0.6117401123046875, 0.772674560546875, 0.9496917724609375, 0.321533203125, 0.9408416748046875, 0.0855255126953125, 0.2080535888671875, 0.3543853759765625, 0.1807861328125, 0.1721343994140625, 0.2657928466796875, 0.2580413818359375, 0.2318115234375, 0.5839996337890625, 0.77252197265625, 0.9840545654296875, 0.597137451171875, 0.43255615234375, 0.8416595458984375, 0.239288330078125, 0.9519195556640625, 0.247650146484375, 0.9747772216796875, 0.323333740234375, 0.5055999755859375, 0.5219573974609375, 0.8804473876953125, 0.7877044677734375, 0.6725006103515625, 0.605987548828125, 0.3588104248046875, 0.5847625732421875, 0.1049957275390625, 0.3869476318359375, 0.9661865234375, 0.627532958984375, 0.676666259765625, 0.670440673828125, 0.5332794189453125, 0.8919219970703125, 0.8461151123046875, 0.3250579833984375, 0.256805419921875, 0.731048583984375, 0.295562744140625, 0.615386962890625, 0.913970947265625, 0.7765350341796875, 0.5179290771484375, 0.2921295166015625, 0.5193939208984375, 0.2173004150390625, 0.6561431884765625, 0.4398651123046875, 0.173431396484375, 0.2695465087890625, 0.9912261962890625, 0.9004364013671875, 0.82281494140625, 0.86260986328125, 0.694793701171875, 0.9029998779296875, 0.1401214599609375, 0.467987060546875, 0.6221466064453125, 0.9815216064453125, 0.4069366455078125, 0.833251953125, 0.846649169921875, 0.07257080078125, 0.664825439453125, 0.3266448974609375, 0.739532470703125, 0.2185821533203125, 0.80621337890625, 0.9649200439453125, 0.8406829833984375, 0.01959228515625, 0.6521148681640625, 0.0263519287109375, 0.1083526611328125, 0.88677978515625, 0.7823638916015625, 0.0772552490234375, 0.2442779541015625, 0.89190673828125, 0.7915191650390625, 0.27716064453125, 0.5862579345703125, 0.0111846923828125, 0.662353515625, 0.8010101318359375, 0.102996826171875, 0.9912109375, 0.0495758056640625, 0.60369873046875, 0.5472869873046875, 0.347381591796875, 0.8863067626953125, 0.4418487548828125, 0.2687225341796875, 0.16937255859375, 0.0177459716796875, 0.98248291015625, 0.9184417724609375, 0.98223876953125, 0.062286376953125, 0.0844573974609375, 0.520904541015625, 0.6981048583984375, 0.47454833984375, 0.489471435546875, 0.0637054443359375, 0.4866943359375, 0.154296875, 0.108551025390625, 0.247650146484375, 0.26995849609375, 0.678680419921875, 0.965057373046875, 0.6695709228515625, 0.5307769775390625, 0.0633087158203125, 0.960906982421875, 0.610504150390625, 0.2186279296875, 0.140533447265625, 0.256927490234375, 0.245361328125, 0.8768463134765625, 0.139251708984375, 0.54986572265625, 0.22735595703125, 0.2842254638671875, 0.647796630859375, 0.71319580078125, 0.968475341796875, 0.28472900390625, 0.72979736328125, 0.4367218017578125, 0.8744659423828125, 0.2323760986328125, 0.3933563232421875, 0.0043487548828125, 0.13775634765625, 0.500518798828125, 0.0926971435546875, 0.9517974853515625, 0.551788330078125, 0.64508056640625, 0.6858062744140625, 0.5370330810546875, 0.654541015625, 0.3937835693359375, 0.8971099853515625, 0.660552978515625, 0.4993743896484375, 0.253509521484375, 0.9066009521484375, 0.0945281982421875, 0.986724853515625, 0.747161865234375, 0.4616546630859375, 0.807861328125, 0.672760009765625, 0.1819610595703125, 0.89105224609375, 0.44268798828125, 0.708587646484375, 0.7664642333984375, 0.24224853515625, 0.4314422607421875, 0.8971405029296875, 0.7867889404296875, 0.7872467041015625, 0.343353271484375, 0.4056854248046875, 0.82855224609375, 0.33306884765625, 0.471435546875, 0.0614471435546875, 0.48162841796875, 0.1278533935546875, 0.063385009765625, 0.8824615478515625, 0.5498199462890625, 0.293731689453125, 0.7919921875, 0.1364288330078125, 0.1956024169921875, 0.7142486572265625, 0.2720947265625, 0.452301025390625, 0.122772216796875, 0.75164794921875, 0.8255767822265625, 0.0697479248046875, 0.796051025390625, 0.5937042236328125, 0.902740478515625, 0.5263671875, 0.88482666015625, 0.1449737548828125, 0.2531890869140625, 0.59039306640625, 0.3756256103515625, 0.350372314453125, 0.3483123779296875, 0.5157470703125, 0.2911529541015625, 0.154083251953125, 0.8844146728515625, 0.3227996826171875, 0.2797698974609375, 0.2787322998046875, 0.82781982421875, 0.6136016845703125, 0.7694854736328125, 0.8372955322265625, 0.235809326171875, 0.6249847412109375, 0.147705078125, 0.7035064697265625, 0.9273681640625, 0.4384918212890625, 0.4112701416015625, 0.375213623046875, 0.91375732421875, 0.053924560546875, 0.936859130859375, 0.65374755859375, 0.4689483642578125, 0.1964111328125, 0.184112548828125, 0.378814697265625, 0.18804931640625, 0.756591796875, 0.1910858154296875, 0.1542205810546875, 0.0407562255859375, 0.1969146728515625, 0.3784942626953125, 0.1694183349609375, 0.7923736572265625, 0.9267730712890625, 0.841461181640625, 0.3262939453125, 0.20843505859375, 0.1245574951171875, 0.7001953125, 0.770843505859375, 0.3109283447265625, 0.1539764404296875, 0.319610595703125, 0.077667236328125, 0.8459320068359375, 0.288665771484375, 0.7883148193359375, 0.0216217041015625, 0.7335662841796875, 0.2941131591796875, 0.5757293701171875, 0.24969482421875, 0.17156982421875, 0.2693023681640625, 0.6331939697265625, 0.4061279296875, 0.4585723876953125, 0.880340576171875, 0.6723480224609375, 0.01025390625, 0.4210052490234375, 0.1744232177734375, 0.37158203125, 0.108673095703125, 0.951568603515625, 0.66009521484375, 0.5414581298828125, 0.930755615234375, 0.5321502685546875, 0.047393798828125, 0.0494384765625, 0.3148193359375, 0.3848114013671875, 0.6813201904296875, 0.4829864501953125, 0.72723388671875, 0.5967559814453125, 0.4897613525390625, 0.6148681640625, 0.6064605712890625, 0.089874267578125, 0.60235595703125, 0.8116607666015625, 0.828460693359375, 0.856658935546875, 0.089599609375, 0.189453125, 0.660614013671875, 0.213043212890625, 0.0825958251953125, 0.52325439453125, 0.0434417724609375, 0.05108642578125, 0.3800811767578125, 0.8772125244140625, 0.40240478515625, 0.4989471435546875, 0.7904510498046875, 0.6373748779296875, 0.81939697265625, 0.4251251220703125, 0.2371978759765625, 0.00433349609375, 0.6339874267578125, 0.9571533203125, 0.5254058837890625, 0.22625732421875, 0.1293182373046875, 0.790191650390625, 0.357147216796875, 0.5018463134765625, 0.256103515625, 0.073638916015625, 0.4323577880859375, 0.686920166015625, 0.39654541015625, 0.5706939697265625, 0.076263427734375, 0.4320220947265625, 0.113250732421875, 0.4837646484375, 0.649688720703125, 0.7432861328125, 0.1790008544921875, 0.7232208251953125, 0.4889678955078125, 0.484832763671875, 0.783843994140625, 0.4591827392578125, 0.7390289306640625, 0.754638671875, 0.631256103515625, 0.802703857421875, 0.461456298828125, 0.459808349609375, 0.6740570068359375, 0.244171142578125, 0.37921142578125, 0.596527099609375, 0.314453125, 0.5676727294921875, 0.4991912841796875, 0.47100830078125, 0.06951904296875, 0.883056640625, 0.0089263916015625, 0.4844207763671875, 0.3442535400390625, 0.233673095703125, 0.4854583740234375, 0.74298095703125, 0.4214019775390625, 0.16357421875, 0.9691009521484375, 0.0682525634765625, 0.198699951171875, 0.50958251953125, 0.2196197509765625, 0.4736328125, 0.544830322265625, 0.215545654296875, 0.3107452392578125, 0.2259368896484375, 0.4034576416015625, 0.142303466796875, 0.95220947265625, 0.1359710693359375, 0.1258544921875, 0.8898468017578125, 0.83441162109375, 0.5988006591796875, 0.45294189453125, 0.0240020751953125, 0.64923095703125, 0.2981109619140625, 0.7067108154296875, 0.5313568115234375, 0.3170166015625, 0.7266387939453125, 0.40924072265625, 0.2269744873046875, 0.4523162841796875, 0.63616943359375, 0.5614776611328125, 0.092071533203125, 0.3824462890625, 0.8060150146484375, 0.2335662841796875, 0.1765899658203125, 0.10321044921875, 0.26556396484375, 0.1825103759765625, 0.650665283203125, 0.1884918212890625, 0.4625701904296875, 0.8845977783203125, 0.5855712890625, 0.4853973388671875, 0.9112701416015625, 0.526275634765625, 0.5920867919921875, 0.6615447998046875, 0.0586700439453125, 0.7901611328125, 0.2147216796875, 0.8019866943359375, 0.760223388671875, 0.9994049072265625, 0.016082763671875, 0.714141845703125, 0.237213134765625, 0.03143310546875, 0.3659820556640625, 0.2232666015625, 0.0484161376953125, 0.46575927734375, 0.254608154296875, 0.6688385009765625, 0.52679443359375, 0.003936767578125, 0.602996826171875, 0.3385009765625, 0.1681365966796875, 0.32061767578125, 0.4661712646484375, 0.8333282470703125, 0.1979217529296875, 0.04266357421875, 0.956268310546875, 0.045928955078125, 0.3694305419921875, 0.99725341796875, 0.60791015625, 0.8302001953125, 0.482574462890625, 0.7236328125, 0.2442779541015625, 0.3160858154296875, 0.7081146240234375, 0.0828399658203125, 0.534149169921875, 0.3685760498046875, 0.4734344482421875, 0.328369140625, 0.2106475830078125, 0.8007354736328125, 0.787200927734375, 0.687713623046875, 0.9165802001953125, 0.5795440673828125, 0.973541259765625, 0.8825836181640625, 0.6942596435546875, 0.212921142578125, 0.4580230712890625, 0.01531982421875, 0.667144775390625, 0.18084716796875, 0.7078094482421875, 0.41876220703125, 0.127044677734375, 0.2059783935546875, 0.0507354736328125, 0.262298583984375, 0.2808380126953125, 0.1678466796875, 0.1038970947265625, 0.615234375, 0.7620697021484375, 0.622283935546875, 0.44677734375, 0.1093597412109375, 0.5345458984375, 0.029632568359375, 0.21234130859375, 0.820159912109375, 0.9190216064453125, 0.668731689453125, 0.678375244140625, 0.9177398681640625, 0.51678466796875, 0.8699493408203125, 0.8619537353515625, 0.5091705322265625, 0.880767822265625, 0.0460662841796875, 0.62939453125, 0.6023712158203125, 0.0254974365234375, 0.119781494140625, 0.78155517578125, 0.7368316650390625, 0.1992034912109375, 0.2162322998046875, 0.4123992919921875, 0.8309783935546875, 0.833892822265625, 0.212982177734375, 0.1342926025390625, 0.7064666748046875, 0.5770111083984375, 0.629150390625, 0.56060791015625, 0.5583343505859375, 0.20562744140625, 0.3975067138671875, 0.284210205078125, 0.60870361328125, 0.3665924072265625, 0.3272552490234375, 0.2549591064453125, 0.623992919921875, 0.1388397216796875, 0.1930694580078125, 0.454864501953125, 0.843017578125, 0.14373779296875, 0.7430419921875, 0.1448211669921875, 0.981170654296875, 0.19384765625, 0.374298095703125, 0.0355987548828125, 0.317626953125, 0.415252685546875, 0.104736328125, 0.6982421875, 0.0761260986328125, 0.3303375244140625, 0.38665771484375, 0.47283935546875, 0.171112060546875, 0.720001220703125, 0.570709228515625, 0.6234283447265625, 0.9188995361328125, 0.0803070068359375, 0.7949981689453125, 0.957672119140625, 0.1570587158203125, 0.4290771484375, 0.0299835205078125, 0.9820556640625, 0.4432373046875, 0.3217926025390625, 0.6427154541015625, 0.9729766845703125, 0.9129791259765625, 0.6822967529296875, 0.7965087890625, 0.5159912109375, 0.8162689208984375, 0.2389984130859375, 0.634857177734375, 0.682647705078125, 0.572235107421875, 0.45281982421875, 0.2723236083984375, 0.9207916259765625, 0.6858062744140625, 0.843841552734375, 0.372894287109375, 0.1617431640625, 0.87841796875, 0.5420684814453125, 0.64080810546875, 0.1121673583984375, 0.4467620849609375, 0.2639923095703125, 0.697235107421875, 0.5773773193359375, 0.4512786865234375, 0.74896240234375, 0.8602447509765625, 0.9254913330078125, 0.6769866943359375, 0.4965362548828125, 0.3144073486328125, 0.6167755126953125, 0.2095184326171875, 0.4389190673828125, 0.6940765380859375, 0.0348968505859375, 0.66766357421875, 0.697845458984375, 0.3842315673828125, 0.1587371826171875, 0.2380523681640625, 0.6667633056640625, 0.883148193359375, 0.734954833984375, 0.41986083984375, 0.7881927490234375, 0.15557861328125, 0.54913330078125, 0.9608917236328125, 0.5595550537109375, 0.6739044189453125, 0.211669921875, 0.362274169921875, 0.0933074951171875, 0.3965911865234375, 0.4748382568359375, 0.0742340087890625, 0.61724853515625, 0.2079620361328125, 0.762176513671875, 0.28070068359375, 0.028167724609375, 0.2012481689453125, 0.057708740234375, 0.4705657958984375, 0.2180328369140625, 0.89227294921875, 0.093963623046875, 0.6956634521484375, 0.4345703125, 0.4212188720703125, 0.79583740234375, 0.936981201171875, 0.7885589599609375, 0.3205108642578125, 0.7805023193359375, 0.8637542724609375, 0.099456787109375, 0.83203125, 0.8499755859375, 0.0746612548828125, 0.30145263671875, 0.3661041259765625, 0.238555908203125, 0.84185791015625, 0.1748199462890625, 0.51129150390625, 0.6495361328125, 0.601654052734375, 0.907318115234375, 0.1390533447265625, 0.2423858642578125, 0.0125732421875, 0.9968414306640625, 0.332122802734375, 0.1275482177734375, 0.23406982421875, 0.8974151611328125, 0.5754241943359375, 0.54205322265625, 0.8107452392578125, 0.369537353515625, 0.1671905517578125, 0.297821044921875, 0.312774658203125, 0.70330810546875, 0.4450531005859375, 0.8465423583984375, 0.14959716796875, 0.8199005126953125, 0.51190185546875, 0.905426025390625, 0.292510986328125, 0.8263702392578125, 0.499053955078125, 0.8173370361328125, 0.898406982421875, 0.65618896484375, 0.4158782958984375, 0.885284423828125, 0.0074920654296875, 0.62579345703125, 0.423736572265625, 0.944366455078125, 0.4431915283203125, 0.6903228759765625, 0.4952392578125, 0.5247650146484375, 0.0092315673828125, 0.2227325439453125, 0.25567626953125, 0.4231109619140625, 0.238372802734375, 0.003570556640625, 0.6907501220703125, 0.7683258056640625, 0.939300537109375, 0.4733428955078125, 0.258148193359375, 0.9141387939453125, 0.8954925537109375, 0.802154541015625, 0.3325958251953125, 0.3948822021484375, 0.972137451171875, 0.5164031982421875, 0.63116455078125, 0.8753814697265625, 0.32122802734375, 0.3021240234375, 0.6584014892578125, 0.639404296875, 0.9034576416015625, 0.321044921875, 0.381195068359375, 0.64617919921875, 0.4012451171875, 0.58984375, 0.178436279296875, 0.8582305908203125, 0.7818756103515625, 0.469482421875, 0.75799560546875, 0.04669189453125, 0.4405364990234375, 0.26373291015625, 0.5321197509765625, 0.813140869140625, 0.176849365234375, 0.2147674560546875, 0.124664306640625, 0.2989501953125, 0.7557373046875, 0.3778228759765625, 0.9535369873046875, 0.386688232421875, 0.129974365234375, 0.7487640380859375, 0.3795013427734375, 0.0095062255859375, 0.3330230712890625, 0.3654022216796875, 0.70269775390625, 0.9819488525390625, 0.404876708984375, 0.1680908203125, 0.310455322265625, 0.828948974609375, 0.94586181640625, 0.481903076171875, 0.5587310791015625, 0.243621826171875, 0.4762115478515625, 0.559539794921875, 0.108551025390625, 0.1002044677734375, 0.59234619140625, 0.44122314453125, 0.9231109619140625, 0.6313323974609375, 0.4794464111328125, 0.5103759765625, 0.5353240966796875, 0.0550994873046875, 0.936981201171875, 0.4552154541015625, 0.6903076171875, 0.143310546875, 0.310546875, 0.642578125, 0.724639892578125, 0.6556396484375, 0.89495849609375, 0.1744842529296875, 0.6557159423828125, 0.7564239501953125, 0.3023834228515625, 0.4896087646484375, 0.177337646484375, 0.913818359375, 0.1391143798828125, 0.8807220458984375, 0.1187744140625, 0.7385711669921875, 0.7683258056640625, 0.4105377197265625, 0.7935333251953125, 0.7943878173828125, 0.3590240478515625, 0.7887420654296875, 0.193084716796875, 0.95330810546875, 0.0259552001953125, 0.5921783447265625, 0.20428466796875, 0.5312042236328125, 0.54656982421875, 0.0147705078125, 0.2030029296875, 0.0740966796875, 0.4635772705078125, 0.9540557861328125, 0.20977783203125, 0.1777801513671875, 0.0407867431640625, 0.5209197998046875, 0.8249664306640625, 0.7152099609375, 0.3137969970703125, 0.6414794921875, 0.2149810791015625, 0.1446533203125, 0.956451416015625, 0.18798828125, 0.0370330810546875, 0.7611541748046875, 0.1117706298828125, 0.14007568359375, 0.4862823486328125, 0.25653076171875, 0.25640869140625, 0.9342041015625, 0.7814178466796875, 0.9821624755859375, 0.5482025146484375, 0.78277587890625, 0.0536041259765625, 0.4205322265625, 0.61749267578125, 0.559356689453125, 0.79522705078125, 0.1788787841796875, 0.6940460205078125, 0.6548614501953125, 0.64605712890625, 0.2425994873046875, 0.2965087890625, 0.77593994140625, 0.324554443359375, 0.8868560791015625, 0.890045166015625, 0.0897064208984375, 0.6307220458984375, 0.6475830078125, 0.156280517578125, 0.4141998291015625, 0.96502685546875, 0.302947998046875, 0.1593780517578125, 0.28076171875, 0.735107421875, 0.9552154541015625, 0.477020263671875, 0.6074676513671875, 0.9795074462890625, 0.37799072265625, 0.6679534912109375, 0.4328765869140625, 0.0292816162109375, 0.70733642578125, 0.65594482421875, 0.4735260009765625, 0.3965911865234375, 0.5130462646484375, 0.523773193359375, 0.55755615234375, 0.076263427734375, 0.302947998046875, 0.771087646484375, 0.7074432373046875, 0.5747833251953125, 0.85992431640625, 0.6046600341796875, 0.0095367431640625, 0.515899658203125, 0.3569183349609375, 0.8785552978515625, 0.1838836669921875, 0.82916259765625, 0.578704833984375, 0.1408843994140625, 0.4293060302734375, 0.16552734375, 0.45751953125, 0.672882080078125, 0.6072998046875, 0.9751434326171875] +12544 rows diff --git a/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.json b/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.json new file mode 100644 index 0000000..e954631 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.01898193359375, 0.244537353515625, 0.0419158935546875, 0.518157958984375, 0.7809295654296875, 0.51531982421875, 0.346466064453125, 0.1577301025390625, 0.813995361328125, 0.4552001953125], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.onnx new file mode 100644 index 0000000..d8f4ed9 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.onnx @@ -0,0 +1,14 @@ + :R + +in_aout_a"Relu +ReluSimpleZ +in_a +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.res b/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.res new file mode 100644 index 0000000..8034b6d --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Relu/ReluSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xf32>[0.01898193359375, 0.244537353515625, 0.0419158935546875, 0.518157958984375, 0.7809295654296875, 0.51531982421875, 0.346466064453125, 0.1577301025390625, 0.813995361328125, 0.4552001953125] +20 rows diff --git a/mlir-assigner/tests/Ops/Round/RoundSimple.json b/mlir-assigner/tests/Ops/Onnx/Round/RoundSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Round/RoundSimple.json rename to mlir-assigner/tests/Ops/Onnx/Round/RoundSimple.json diff --git a/mlir-assigner/tests/Ops/Round/RoundSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Round/RoundSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Round/RoundSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Round/RoundSimple.onnx diff --git a/mlir-assigner/tests/Ops/Round/RoundSimple.res b/mlir-assigner/tests/Ops/Onnx/Round/RoundSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Round/RoundSimple.res rename to mlir-assigner/tests/Ops/Onnx/Round/RoundSimple.res diff --git a/mlir-assigner/tests/Ops/Sign/SignSimple.json b/mlir-assigner/tests/Ops/Onnx/Sign/SignSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Sign/SignSimple.json rename to mlir-assigner/tests/Ops/Onnx/Sign/SignSimple.json diff --git a/mlir-assigner/tests/Ops/Sign/SignSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Sign/SignSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Sign/SignSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Sign/SignSimple.onnx diff --git a/mlir-assigner/tests/Ops/Sign/SignSimple.res b/mlir-assigner/tests/Ops/Onnx/Sign/SignSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Sign/SignSimple.res rename to mlir-assigner/tests/Ops/Onnx/Sign/SignSimple.res diff --git a/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.json b/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.json new file mode 100644 index 0000000..ca32c78 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.5509796142578125, 0.0885467529296875, 0.2042999267578125, 0.88037109375, 0.5495147705078125, 0.4399566650390625, 0.7802734375, 0.361328125, 0.2987518310546875, 0.5926055908203125], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.onnx b/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.onnx new file mode 100644 index 0000000..69c5641 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.onnx @@ -0,0 +1,14 @@ + :i +# +in_aout_a"Softmax* +axis�SoftmaxBasicMnistZ +in_a +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.res b/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.res new file mode 100644 index 0000000..3d675d5 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Softmax/SoftmaxBasicMnist.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xf32>[0.10498809814453125, 0.06611622124910355, 0.07422991842031479, 0.14594626426696777, 0.1048344224691391, 0.09395576268434525, 0.1320447325706482, 0.08685112744569778, 0.08158286660909653, 0.109450563788414] +70 rows diff --git a/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.json b/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.json new file mode 100644 index 0000000..d50cbd0 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.json @@ -0,0 +1 @@ +[{"memref": {"data": [0.377044677734375, 0.218231201171875, 0.68017578125, 0.0030364990234375, 0.2501068115234375, 0.931732177734375, 0.8594970703125, 0.71826171875, 0.6328887939453125, 0.24420166015625], "dims": [1, 10], "type": "f32"}}, {"memref": {"data": [0.1902923583984375, 0.5543670654296875, 0.0579833984375, 0.586456298828125, 0.6880645751953125, 0.24224853515625, 0.0553131103515625, 0.57525634765625, 0.7639617919921875, 0.659423828125], "dims": [1, 10], "type": "f32"}}] \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.onnx new file mode 100644 index 0000000..94f0d6a --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.onnx @@ -0,0 +1,19 @@ + :n + +in_a +in_bout_a"Sub SubSimpleZ +in_a +  + + +Z +in_b +  + + +b +out_a +  + + +B \ No newline at end of file diff --git a/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.res b/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.res new file mode 100644 index 0000000..8b0ff48 --- /dev/null +++ b/mlir-assigner/tests/Ops/Onnx/Sub/SubSimple.res @@ -0,0 +1,3 @@ +Result: +memref<1x10xf32>[0.1867523193359375, -0.3361358642578125, 0.6221923828125, -0.5834197998046875, -0.437957763671875, 0.689483642578125, 0.8041839599609375, 0.14300537109375, -0.131072998046875, -0.41522216796875] +23 rows diff --git a/mlir-assigner/tests/Ops/Sum/SumSimple.json b/mlir-assigner/tests/Ops/Onnx/Sum/SumSimple.json similarity index 100% rename from mlir-assigner/tests/Ops/Sum/SumSimple.json rename to mlir-assigner/tests/Ops/Onnx/Sum/SumSimple.json diff --git a/mlir-assigner/tests/Ops/Sum/SumSimple.onnx b/mlir-assigner/tests/Ops/Onnx/Sum/SumSimple.onnx similarity index 100% rename from mlir-assigner/tests/Ops/Sum/SumSimple.onnx rename to mlir-assigner/tests/Ops/Onnx/Sum/SumSimple.onnx diff --git a/mlir-assigner/tests/Ops/Sum/SumSimple.res b/mlir-assigner/tests/Ops/Onnx/Sum/SumSimple.res similarity index 100% rename from mlir-assigner/tests/Ops/Sum/SumSimple.res rename to mlir-assigner/tests/Ops/Onnx/Sum/SumSimple.res diff --git a/mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.mlir b/mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.mlir deleted file mode 100644 index 868a221..0000000 --- a/mlir-assigner/tests/Ops/Reciprocal/ReciprocalSimple.mlir +++ /dev/null @@ -1,15 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "reciprocalsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 1.000000e+00 : f32 - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = arith.divf %cst, %0 : f32 - affine.store %1, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Relu/ReLuMnist12.json b/mlir-assigner/tests/Ops/Relu/ReLuMnist12.json deleted file mode 100644 index b8bb9a0..0000000 --- a/mlir-assigner/tests/Ops/Relu/ReLuMnist12.json +++ /dev/null @@ -1,2001 +0,0 @@ -[ - { - "memref": { - "data": [ - 0.2931976318359375, 0.2155914306640625, 0.1419525146484375, - 0.566925048828125, 0.310455322265625, 0.368560791015625, - 0.257965087890625, 0.2220458984375, 0.1589508056640625, - 0.6755828857421875, 0.9116668701171875, 0.1979217529296875, - 0.646392822265625, 0.988555908203125, 0.1741485595703125, - 0.58148193359375, 0.1683349609375, 0.103668212890625, 0.0986328125, - 0.0345611572265625, 0.996826171875, 0.2569580078125, 0.212432861328125, - 0.6473388671875, 0.1201019287109375, 0.3746185302734375, - 0.701507568359375, 0.286834716796875, 0.06463623046875, - 0.72772216796875, 0.2238006591796875, 0.9114227294921875, - 0.341644287109375, 0.958526611328125, 0.7086334228515625, - 0.94122314453125, 0.8854217529296875, 0.4866790771484375, - 0.0364532470703125, 0.459014892578125, 0.780120849609375, - 0.5048675537109375, 0.49212646484375, 0.2826995849609375, - 0.9145965576171875, 0.4570159912109375, 0.9442901611328125, - 0.885345458984375, 0.0546875, 0.4153594970703125, 0.037078857421875, - 0.0273284912109375, 0.2742462158203125, 0.901123046875, - 0.8841400146484375, 0.679779052734375, 0.8133392333984375, - 0.944183349609375, 0.2214202880859375, 0.913604736328125, - 0.878814697265625, 0.864349365234375, 0.272796630859375, - 0.731109619140625, 0.6110687255859375, 0.687042236328125, - 0.0421600341796875, 0.16424560546875, 0.3174285888671875, - 0.9631500244140625, 0.0881805419921875, 0.1125640869140625, - 0.1010589599609375, 0.451873779296875, 0.2781524658203125, - 0.0614776611328125, 0.6222076416015625, 0.588775634765625, - 0.113616943359375, 0.9219970703125, 0.604705810546875, - 0.9463653564453125, 0.4955291748046875, 0.107269287109375, - 0.767303466796875, 0.0654144287109375, 0.491302490234375, - 0.05316162109375, 0.8225555419921875, 0.8628692626953125, - 0.35833740234375, 0.2363433837890625, 0.9748077392578125, - 0.523590087890625, 0.82586669921875, 0.404205322265625, - 0.0816192626953125, 0.484161376953125, 0.497222900390625, - 0.8421478271484375, 0.3607635498046875, 0.1441650390625, - 0.661102294921875, 0.0682373046875, 0.5341339111328125, - 0.0941925048828125, 0.03094482421875, 0.219329833984375, - 0.60064697265625, 0.77947998046875, 0.0016937255859375, - 0.5057830810546875, 0.8456573486328125, 0.0696563720703125, - 0.7623291015625, 0.1067962646484375, 0.6191253662109375, 0.2109375, - 0.47467041015625, 0.706268310546875, 0.555450439453125, 0.2462158203125, - 0.461883544921875, 0.427947998046875, 0.8062286376953125, - 0.423065185546875, 0.1087493896484375, 0.5416107177734375, - 0.9546661376953125, 0.746551513671875, 0.9185638427734375, - 0.9860076904296875, 0.1382598876953125, 0.005859375, 0.05047607421875, - 0.914520263671875, 0.3188323974609375, 0.2643890380859375, - 0.6803131103515625, 0.519775390625, 0.9963226318359375, - 0.473297119140625, 0.641845703125, 0.24029541015625, 0.8681488037109375, - 0.5033721923828125, 0.338775634765625, 0.676300048828125, 0.41845703125, - 0.309783935546875, 0.468719482421875, 0.3599700927734375, - 0.5834808349609375, 0.7092742919921875, 0.3653717041015625, - 0.247222900390625, 0.112335205078125, 0.4678802490234375, - 0.718414306640625, 0.850067138671875, 0.3582000732421875, - 0.847015380859375, 0.7540130615234375, 0.937286376953125, - 0.2940521240234375, 0.347137451171875, 0.7456207275390625, - 0.559326171875, 0.569183349609375, 0.7623443603515625, 0.49578857421875, - 0.998443603515625, 0.63995361328125, 0.008575439453125, - 0.2521514892578125, 0.814483642578125, 0.255828857421875, - 0.6537322998046875, 0.26080322265625, 0.0828094482421875, - 0.4697723388671875, 0.9904022216796875, 0.756317138671875, - 0.929443359375, 0.315765380859375, 0.643218994140625, - 0.0897674560546875, 0.053192138671875, 0.300994873046875, - 0.7972564697265625, 0.0955657958984375, 0.537506103515625, - 0.8771209716796875, 0.61492919921875, 0.1352691650390625, - 0.3933868408203125, 0.331817626953125, 0.3668212890625, 0.6024169921875, - 0.1237945556640625, 0.5659027099609375, 0.58551025390625, - 0.511566162109375, 0.17474365234375, 0.7880859375, 0.8131103515625, - 0.905364990234375, 0.7144927978515625, 0.7973480224609375, - 0.12945556640625, 0.4743804931640625, 0.1518707275390625, - 0.29656982421875, 0.1002960205078125, 0.735504150390625, 0.009521484375, - 0.789215087890625, 0.7434844970703125, 0.2821044921875, - 0.3260955810546875, 0.191009521484375, 0.8660430908203125, - 0.207733154296875, 0.354766845703125, 0.958099365234375, - 0.72076416015625, 0.7970733642578125, 0.7435760498046875, - 0.6656646728515625, 0.926300048828125, 0.1003875732421875, - 0.470947265625, 0.9461669921875, 0.1401519775390625, 0.2821044921875, - 0.617706298828125, 0.8693695068359375, 0.1888885498046875, - 0.719879150390625, 0.780029296875, 0.98748779296875, 0.7507781982421875, - 0.1232757568359375, 0.296844482421875, 0.5371551513671875, - 0.385223388671875, 0.555023193359375, 0.4493255615234375, - 0.1762237548828125, 0.081024169921875, 0.2155303955078125, - 0.9066162109375, 0.5485076904296875, 0.4234619140625, 0.227325439453125, - 0.782257080078125, 0.5012969970703125, 0.1657867431640625, - 0.1270904541015625, 0.9201507568359375, 0.4102325439453125, - 0.4065704345703125, 0.732818603515625, 0.796173095703125, - 0.77191162109375, 0.8655853271484375, 0.4363555908203125, - 0.4446563720703125, 0.826141357421875, 0.109039306640625, - 0.8612060546875, 0.58489990234375, 0.43048095703125, 0.672393798828125, - 0.287872314453125, 0.5000762939453125, 0.951904296875, - 0.5247650146484375, 0.816802978515625, 0.4850311279296875, - 0.799774169921875, 0.33319091796875, 0.47833251953125, - 0.5543060302734375, 0.67584228515625, 0.7664642333984375, 0.31591796875, - 0.6020050048828125, 0.2879791259765625, 0.13677978515625, - 0.480682373046875, 0.6749725341796875, 0.621246337890625, - 0.6694183349609375, 0.8326416015625, 0.3009033203125, 0.9881591796875, - 0.7331390380859375, 0.7933502197265625, 0.5502777099609375, - 0.976715087890625, 0.8216400146484375, 0.838409423828125, - 0.0837249755859375, 0.2178802490234375, 0.5581207275390625, - 0.369781494140625, 0.7663116455078125, 0.7402191162109375, - 0.78240966796875, 0.8423919677734375, 0.1907958984375, - 0.230316162109375, 0.90179443359375, 0.613555908203125, - 0.9335174560546875, 0.2683258056640625, 0.2848968505859375, - 0.7026824951171875, 0.2071380615234375, 0.7885589599609375, - 0.482513427734375, 0.6138153076171875, 0.621917724609375, - 0.9782562255859375, 0.2809906005859375, 0.6125030517578125, - 0.6943817138671875, 0.7006683349609375, 0.376983642578125, - 0.6079559326171875, 0.1526947021484375, 0.263946533203125, - 0.28424072265625, 0.214569091796875, 0.192230224609375, - 0.152130126953125, 0.2763214111328125, 0.966461181640625, - 0.6183013916015625, 0.70184326171875, 0.1680145263671875, - 0.0752105712890625, 0.4375457763671875, 0.3648681640625, - 0.58392333984375, 0.4343414306640625, 0.706817626953125, - 0.6641845703125, 0.9459228515625, 0.7906036376953125, - 0.6857147216796875, 0.73297119140625, 0.2925872802734375, - 0.22039794921875, 0.3814697265625, 0.4012298583984375, - 0.4119415283203125, 0.3708343505859375, 0.9362945556640625, - 0.3924560546875, 0.0121002197265625, 0.1792755126953125, - 0.635833740234375, 0.735565185546875, 0.016998291015625, - 0.541839599609375, 0.8897247314453125, 0.38665771484375, - 0.3590087890625, 0.392974853515625, 0.1063385009765625, - 0.282928466796875, 0.6002655029296875, 0.5740203857421875, - 0.04656982421875, 0.4924468994140625, 0.9388275146484375, - 0.5392913818359375, 0.1147613525390625, 0.482666015625, - 0.22540283203125, 0.577667236328125, 0.95330810546875, - 0.874176025390625, 0.191436767578125, 0.2825469970703125, - 0.2423553466796875, 0.61749267578125, 0.0493011474609375, - 0.3788299560546875, 0.614013671875, 0.1222076416015625, - 0.3067474365234375, 0.082977294921875, 0.595947265625, - 0.321807861328125, 0.714691162109375, 0.60955810546875, - 0.0676727294921875, 0.2625579833984375, 0.0715484619140625, - 0.29339599609375, 0.8915252685546875, 0.535552978515625, - 0.074127197265625, 0.472900390625, 0.7829132080078125, 0.41168212890625, - 0.77508544921875, 0.43255615234375, 0.326202392578125, - 0.2608489990234375, 0.1692962646484375, 0.551971435546875, - 0.2767181396484375, 0.5230255126953125, 0.924072265625, - 0.9113922119140625, 0.45849609375, 0.5162506103515625, - 0.6008758544921875, 0.61322021484375, 0.35186767578125, - 0.618927001953125, 0.447967529296875, 0.568695068359375, - 0.5594635009765625, 0.2904052734375, 0.47039794921875, - 0.162261962890625, 0.4994354248046875, 0.5966796875, 0.016204833984375, - 0.8194122314453125, 0.4381103515625, 0.87530517578125, - 0.4150238037109375, 0.1205596923828125, 0.147003173828125, - 0.2191619873046875, 0.717559814453125, 0.0349273681640625, - 0.7583465576171875, 0.8261871337890625, 0.918975830078125, - 0.0002288818359375, 0.1698760986328125, 0.0609130859375, - 0.8512115478515625, 0.6598968505859375, 0.052276611328125, - 0.3035736083984375, 0.54248046875, 0.668212890625, 0.3760986328125, - 0.04986572265625, 0.5906219482421875, 0.9974517822265625, - 0.64703369140625, 0.3154449462890625, 0.3359222412109375, - 0.5342559814453125, 0.73760986328125, 0.9003753662109375, - 0.440338134765625, 0.0466766357421875, 0.592559814453125, - 0.221038818359375, 0.86083984375, 0.507965087890625, 0.0273590087890625, - 0.5524139404296875, 0.61419677734375, 0.3316650390625, - 0.4225006103515625, 0.22674560546875, 0.6448516845703125, - 0.6832275390625, 0.18267822265625, 0.585968017578125, - 0.0689544677734375, 0.6648101806640625, 0.20928955078125, - 0.322723388671875, 0.39215087890625, 0.5805511474609375, - 0.433441162109375, 0.4376678466796875, 0.617431640625, 0.69805908203125, - 0.0816192626953125, 0.3163604736328125, 0.2861785888671875, - 0.1389923095703125, 0.1056976318359375, 0.7849884033203125, - 0.8584442138671875, 0.473358154296875, 0.208404541015625, - 0.914947509765625, 0.44769287109375, 0.325469970703125, - 0.18670654296875, 0.9177093505859375, 0.888031005859375, - 0.3401947021484375, 0.517059326171875, 0.710113525390625, - 0.338043212890625, 0.3709564208984375, 0.577392578125, 0.24176025390625, - 0.930999755859375, 0.131683349609375, 0.5518646240234375, - 0.852020263671875, 0.654876708984375, 0.0450592041015625, - 0.02398681640625, 0.9435272216796875, 0.995391845703125, - 0.503448486328125, 0.9374542236328125, 0.21527099609375, - 0.66387939453125, 0.8694610595703125, 0.4352264404296875, - 0.5316314697265625, 0.1336822509765625, 0.8699951171875, - 0.096221923828125, 0.48974609375, 0.8600616455078125, 0.165985107421875, - 0.5001068115234375, 0.7064056396484375, 0.353485107421875, - 0.0939788818359375, 0.77996826171875, 0.1004638671875, 0.39923095703125, - 0.569732666015625, 0.2712249755859375, 0.3173065185546875, - 0.7633056640625, 0.5456695556640625, 0.488739013671875, - 0.7019500732421875, 0.385040283203125, 0.5195770263671875, - 0.6532440185546875, 0.5626983642578125, 0.1970977783203125, - 0.8609466552734375, 0.2308807373046875, 0.385894775390625, - 0.9693756103515625, 0.43389892578125, 0.7807769775390625, - 0.142791748046875, 0.0225372314453125, 0.6397857666015625, - 0.41253662109375, 0.718536376953125, 0.6653289794921875, - 0.6387786865234375, 0.1296234130859375, 0.306060791015625, - 0.1079864501953125, 0.6932373046875, 0.9247894287109375, - 0.585784912109375, 0.28564453125, 0.2523345947265625, - 0.6934967041015625, 0.0029449462890625, 0.0506591796875, - 0.2126922607421875, 0.42498779296875, 0.79205322265625, - 0.8229217529296875, 0.074249267578125, 0.5502166748046875, - 0.4241943359375, 0.3236083984375, 0.8473052978515625, - 0.8969879150390625, 0.19476318359375, 0.517425537109375, - 0.6485748291015625, 0.5277862548828125, 0.489013671875, - 0.57330322265625, 0.2276611328125, 0.6104888916015625, - 0.894622802734375, 0.09796142578125, 0.7431640625, 0.89990234375, - 0.19195556640625, 0.109588623046875, 0.6678619384765625, - 0.1196136474609375, 0.22637939453125, 0.97271728515625, - 0.6676483154296875, 0.24169921875, 0.4886474609375, 0.6042022705078125, - 0.347625732421875, 0.148345947265625, 0.0885009765625, - 0.7915496826171875, 0.2368927001953125, 0.7911529541015625, - 0.88946533203125, 0.6027679443359375, 0.840087890625, 0.510345458984375, - 0.9038238525390625, 0.76275634765625, 0.1061859130859375, - 0.5646514892578125, 0.5032958984375, 0.762603759765625, 0.281494140625, - 0.89697265625, 0.424591064453125, 0.4263153076171875, - 0.7292633056640625, 0.664154052734375, 0.50067138671875, - 0.9722442626953125, 0.4529266357421875, 0.5520477294921875, - 0.69659423828125, 0.635650634765625, 0.1671142578125, 0.2630615234375, - 0.95404052734375, 0.199920654296875, 0.763427734375, 0.624298095703125, - 0.683441162109375, 0.771484375, 0.7639617919921875, 0.19720458984375, - 0.43792724609375, 0.5205535888671875, 0.7961578369140625, - 0.5737152099609375, 0.096343994140625, 0.3477325439453125, - 0.818389892578125, 0.111053466796875, 0.246795654296875, - 0.79681396484375, 0.0372314453125, 0.099639892578125, 0.351318359375, - 0.7243194580078125, 0.8037261962890625, 0.644073486328125, - 0.867340087890625, 0.5571441650390625, 0.598358154296875, - 0.6514739990234375, 0.1408843994140625, 0.9936676025390625, - 0.578948974609375, 0.0406494140625, 0.625732421875, 0.073699951171875, - 0.8968658447265625, 0.3205718994140625, 0.0041656494140625, - 0.0163726806640625, 0.998931884765625, 0.275177001953125, - 0.547943115234375, 0.743499755859375, 0.6436920166015625, - 0.0241546630859375, 0.244049072265625, 0.875762939453125, - 0.762115478515625, 0.878326416015625, 0.2606201171875, - 0.4391021728515625, 0.302764892578125, 0.223175048828125, - 0.93927001953125, 0.33929443359375, 0.034454345703125, - 0.961395263671875, 0.007965087890625, 0.593017578125, 0.36358642578125, - 0.3286895751953125, 0.1949920654296875, 0.5166473388671875, - 0.8308258056640625, 0.9890594482421875, 0.465667724609375, - 0.6793670654296875, 0.82080078125, 0.100250244140625, 0.975555419921875, - 0.5204010009765625, 0.6231842041015625, 0.269287109375, - 0.90301513671875, 0.53680419921875, 0.38751220703125, 0.287841796875, - 0.029144287109375, 0.30316162109375, 0.1781768798828125, - 0.9384002685546875, 0.5499725341796875, 0.0816650390625, - 0.7745819091796875, 0.8107147216796875, 0.2799224853515625, - 0.6600341796875, 0.673553466796875, 0.3827056884765625, - 0.70233154296875, 0.3836822509765625, 0.2275543212890625, - 0.617095947265625, 0.763763427734375, 0.342864990234375, - 0.2629852294921875, 0.597412109375, 0.748687744140625, - 0.5238800048828125, 0.6115264892578125, 0.87066650390625, - 0.0489501953125, 0.1717529296875, 0.0436553955078125, 0.970794677734375, - 0.24609375, 0.738983154296875, 0.8819732666015625, 0.4925537109375, - 0.4820098876953125, 0.70098876953125, 0.4773712158203125, - 0.4509735107421875, 0.529632568359375, 0.9734954833984375, - 0.474884033203125, 0.3744354248046875, 0.033477783203125, - 0.5400848388671875, 0.0867767333984375, 0.3739166259765625, - 0.1426849365234375, 0.69854736328125, 0.922515869140625, - 0.74505615234375, 0.50238037109375, 0.7509613037109375, 0.6649169921875, - 0.1023406982421875, 0.9344482421875, 0.60955810546875, - 0.927215576171875, 0.453704833984375, 0.497589111328125, - 0.45562744140625, 0.2434539794921875, 0.90557861328125, - 0.725128173828125, 0.3061370849609375, 0.412689208984375, - 0.5868377685546875, 0.154327392578125, 0.82470703125, 0.6552734375, - 0.2343902587890625, 0.9393768310546875, 0.8442230224609375, 0.7734375, - 0.2701416015625, 0.6784210205078125, 0.0722808837890625, - 0.375396728515625, 0.6736907958984375, 0.7374267578125, - 0.6455535888671875, 0.148895263671875, 0.110565185546875, - 0.62701416015625, 0.7846832275390625, 0.1000213623046875, - 0.2211151123046875, 0.69744873046875, 0.77496337890625, - 0.6595306396484375, 0.1698760986328125, 0.9514007568359375, - 0.078948974609375, 0.6674346923828125, 0.291748046875, - 0.7461395263671875, 0.5055999755859375, 0.47796630859375, - 0.7082977294921875, 0.3511199951171875, 0.8032073974609375, - 0.7796630859375, 0.5071258544921875, 0.3924560546875, - 0.5741119384765625, 0.7366790771484375, 0.64422607421875, - 0.9137725830078125, 0.8289794921875, 0.982208251953125, - 0.6068267822265625, 0.01165771484375, 0.26141357421875, - 0.164337158203125, 0.5825653076171875, 0.74090576171875, - 0.2774810791015625, 0.6682891845703125, 0.0622100830078125, - 0.63629150390625, 0.9525909423828125, 0.586273193359375, - 0.7628936767578125, 0.9000091552734375, 0.6018218994140625, - 0.358917236328125, 0.00860595703125, 0.269073486328125, - 0.1686859130859375, 0.365142822265625, 0.8436431884765625, - 0.172882080078125, 0.7305450439453125, 0.7351531982421875, - 0.538116455078125, 0.5501251220703125, 0.50238037109375, - 0.30023193359375, 0.0501708984375, 0.942962646484375, 0.32568359375, - 0.420867919921875, 0.8544921875, 0.4521636962890625, 0.1511077880859375, - 0.803802490234375, 0.3470916748046875, 0.0249176025390625, - 0.28350830078125, 0.7389068603515625, 0.74835205078125, - 0.1057891845703125, 0.02972412109375, 0.122772216796875, - 0.9973907470703125, 0.4833984375, 0.7250213623046875, - 0.5641632080078125, 0.3428802490234375, 0.837432861328125, - 0.5593109130859375, 0.9147186279296875, 0.2439727783203125, - 0.4963531494140625, 0.9961395263671875, 0.0277099609375, - 0.791656494140625, 0.67840576171875, 0.8336029052734375, - 0.679473876953125, 0.4080963134765625, 0.986602783203125, - 0.8317108154296875, 0.773712158203125, 0.9233245849609375, - 0.678619384765625, 0.841278076171875, 0.078033447265625, - 0.308013916015625, 0.138641357421875, 0.5154266357421875, - 0.88568115234375, 0.0102691650390625, 0.3809356689453125, - 0.523895263671875, 0.592529296875, 0.0487823486328125, - 0.2011566162109375, 0.2568206787109375, 0.1269073486328125, - 0.59124755859375, 0.7628021240234375, 0.36883544921875, - 0.27239990234375, 0.8403778076171875, 0.919769287109375, - 0.255767822265625, 0.7759857177734375, 0.0789031982421875, - 0.1431732177734375, 0.3053436279296875, 0.508636474609375, - 0.129425048828125, 0.6109771728515625, 0.1788177490234375, - 0.29205322265625, 0.0214385986328125, 0.8643035888671875, - 0.514373779296875, 0.475494384765625, 0.672088623046875, - 0.148529052734375, 0.1272735595703125, 0.2233428955078125, 0.8408203125, - 0.018463134765625, 0.2841033935546875, 0.5343017578125, - 0.467498779296875, 0.93756103515625, 0.547149658203125, - 0.66119384765625, 0.6568145751953125, 0.36956787109375, - 0.35809326171875, 0.85418701171875, 0.531951904296875, - 0.2541961669921875, 0.967620849609375, 0.7465362548828125, - 0.6752777099609375, 0.2774658203125, 0.3184814453125, - 0.2622833251953125, 0.30859375, 0.5293426513671875, 0.9776611328125, - 0.8272552490234375, 0.09576416015625, 0.2253265380859375, - 0.7342071533203125, 0.9021453857421875, 0.7449493408203125, - 0.615997314453125, 0.9528350830078125, 0.047760009765625, - 0.41693115234375, 0.9467010498046875, 0.2576751708984375, - 0.92913818359375, 0.6871795654296875, 0.5640411376953125, - 0.6355133056640625, 0.047119140625, 0.1618194580078125, 0.0794677734375, - 0.912811279296875, 0.995147705078125, 0.7255859375, 0.9074249267578125, - 0.4925537109375, 0.8638763427734375, 0.25994873046875, 0.84490966796875, - 0.5679168701171875, 0.2115020751953125, 0.6041259765625, - 0.117645263671875, 0.40142822265625, 0.5076446533203125, - 0.1510162353515625, 0.25299072265625, 0.6586456298828125, - 0.2863616943359375, 0.689453125, 0.4127044677734375, 0.809844970703125, - 0.4188385009765625, 0.5608062744140625, 0.792633056640625, - 0.9067535400390625, 0.762908935546875, 0.371612548828125, - 0.9476318359375, 0.753509521484375, 0.0235443115234375, - 0.0901336669921875, 0.3686676025390625, 0.879180908203125, - 0.6595001220703125, 0.959259033203125, 0.1033935546875, - 0.087371826171875, 0.331817626953125, 0.0906524658203125, - 0.2337188720703125, 0.4364166259765625, 0.9506072998046875, - 0.508636474609375, 0.0325927734375, 0.87371826171875, 0.087005615234375, - 0.30255126953125, 0.7409515380859375, 0.1720428466796875, - 0.3686981201171875, 0.347900390625, 0.1534423828125, 0.0092926025390625, - 0.404754638671875, 0.640106201171875, 0.084991455078125, - 0.0590362548828125, 0.55072021484375, 0.916717529296875, 0.325439453125, - 0.1864776611328125, 0.201690673828125, 0.6812896728515625, - 0.7521820068359375, 0.831512451171875, 0.3954315185546875, - 0.27838134765625, 0.48004150390625, 0.4119110107421875, - 0.540435791015625, 0.6376190185546875, 0.8197174072265625, - 0.2481842041015625, 0.9058990478515625, 0.5313262939453125, - 0.201385498046875, 0.0117034912109375, 0.556396484375, 0.77374267578125, - 0.27191162109375, 0.8720245361328125, 0.4722137451171875, - 0.70172119140625, 0.5508880615234375, 0.4229888916015625, - 0.12152099609375, 0.04852294921875, 0.763275146484375, 0.488037109375, - 0.014556884765625, 0.2193603515625, 0.497589111328125, - 0.108612060546875, 0.814544677734375, 0.77569580078125, - 0.522491455078125, 0.323455810546875, 0.8489990234375, - 0.2921600341796875, 0.7763824462890625, 0.8675537109375, - 0.879119873046875, 0.9157257080078125, 0.4183197021484375, - 0.6769866943359375, 0.072540283203125, 0.8883209228515625, - 0.5431060791015625, 0.2100982666015625, 7.62939453125e-5, - 0.0303497314453125, 0.1077423095703125, 0.700531005859375, - 0.8108978271484375, 0.3790130615234375, 0.8768157958984375, - 0.1986846923828125, 0.6739959716796875, 0.7933197021484375, - 0.9018096923828125, 0.2493133544921875, 0.870361328125, 0.7423095703125, - 0.149322509765625, 0.538909912109375, 0.990570068359375, - 0.0294036865234375, 0.217498779296875, 0.8785552978515625, - 0.4608612060546875, 0.8221435546875, 0.76251220703125, - 0.491973876953125, 0.651611328125, 0.1821441650390625, - 0.354888916015625, 0.4962615966796875, 0.7159576416015625, - 0.581817626953125, 0.873931884765625, 0.8785858154296875, - 0.444549560546875, 0.327972412109375, 0.3350372314453125, - 0.814727783203125, 0.66180419921875, 0.6395111083984375, 0.09033203125, - 0.826568603515625, 0.8320465087890625, 0.5284576416015625, - 0.328033447265625, 0.2319183349609375, 0.136138916015625, - 0.3724212646484375, 0.93768310546875, 0.3926239013671875, - 0.0025787353515625, 0.9132537841796875, 0.8964385986328125, - 0.5445709228515625, 0.8305206298828125, 0.902923583984375, - 0.1540069580078125, 0.6397247314453125, 0.222198486328125, - 0.1384124755859375, 0.3856201171875, 0.3166656494140625, - 0.4347686767578125, 0.0258331298828125, 0.6544952392578125, - 0.570465087890625, 0.3593597412109375, 0.605255126953125, - 0.7214508056640625, 0.1906585693359375, 0.5406494140625, - 0.096588134765625, 0.37548828125, 0.1019134521484375, 0.437835693359375, - 0.774566650390625, 0.899810791015625, 0.057098388671875, - 0.7246551513671875, 0.139190673828125, 0.8585662841796875, - 0.486968994140625, 0.62298583984375, 0.4124298095703125, 0.219482421875, - 0.03521728515625, 0.6663360595703125, 0.0058441162109375, - 0.6540985107421875, 0.784271240234375, 0.7919158935546875, - 0.2291107177734375, 0.85296630859375, 0.702728271484375, - 0.142364501953125, 0.378509521484375, 0.4630279541015625, - 0.494232177734375, 0.9415283203125, 0.878814697265625, 0.20953369140625, - 0.9652252197265625, 0.78802490234375, 0.7431182861328125, - 0.5869903564453125, 0.289764404296875, 0.6140594482421875, - 0.54150390625, 0.0074310302734375, 0.2636871337890625, - 0.270538330078125, 0.14630126953125, 0.254486083984375, - 0.873260498046875, 0.4588623046875, 0.750091552734375, - 0.423797607421875, 0.064178466796875, 0.53240966796875, - 0.16461181640625, 0.707733154296875, 0.4641265869140625, - 0.792144775390625, 0.94073486328125, 0.19232177734375, - 0.0063629150390625, 0.8492431640625, 0.7957611083984375, - 0.2723846435546875, 0.3900299072265625, 0.0309906005859375, - 0.4460296630859375, 0.9675750732421875, 0.5230712890625, - 0.400543212890625, 0.8740692138671875, 0.441925048828125, - 0.0807037353515625, 0.07110595703125, 0.9087066650390625, - 0.594024658203125, 0.7535247802734375, 0.5001068115234375, - 0.2054290771484375, 0.9182586669921875, 0.3581390380859375, - 0.9935455322265625, 0.1890106201171875, 0.8924713134765625, - 0.582489013671875, 0.686004638671875, 0.947021484375, 0.472198486328125, - 0.0729522705078125, 0.8069610595703125, 0.451629638671875, - 0.3375244140625, 0.1639404296875, 0.84130859375, 0.15374755859375, - 0.0753021240234375, 0.4689483642578125, 0.124725341796875, - 0.731658935546875, 0.395843505859375, 0.637664794921875, - 0.2075042724609375, 0.0169525146484375, 0.620147705078125, - 0.723358154296875, 0.1892852783203125, 0.8896636962890625, - 0.398193359375, 0.7953643798828125, 0.7795257568359375, - 0.314422607421875, 0.6697235107421875, 0.060028076171875, - 0.6899871826171875, 0.032928466796875, 0.9339599609375, - 0.8338165283203125, 0.540374755859375, 0.68280029296875, - 0.5096893310546875, 0.41876220703125, 0.5392303466796875, - 0.5182952880859375, 0.0456390380859375, 0.1064910888671875, - 0.745025634765625, 0.68194580078125, 0.7049560546875, - 0.3103790283203125, 0.2047882080078125, 0.4055328369140625, - 0.3813323974609375, 0.136383056640625, 0.814056396484375, - 0.9640045166015625, 0.511199951171875, 0.7814483642578125, - 0.175201416015625, 0.3670501708984375, 0.6014251708984375, - 0.35205078125, 0.11773681640625, 0.67315673828125, 0.4110565185546875, - 0.3207855224609375, 0.4931640625, 0.5787200927734375, - 0.0862884521484375, 0.9877471923828125, 0.2252655029296875, - 0.1280670166015625, 0.1124420166015625, 0.4180908203125, - 0.171417236328125, 0.2114410400390625, 0.6389007568359375, - 0.2308807373046875, 0.4604339599609375, 0.6114959716796875, - 0.963775634765625, 0.245635986328125, 0.249908447265625, - 0.5829010009765625, 0.434326171875, 0.337646484375, 0.2154998779296875, - 0.7706146240234375, 0.721160888671875, 0.6520538330078125, - 0.3209686279296875, 0.45172119140625, 0.918426513671875, - 0.6727142333984375, 0.4222869873046875, 0.408416748046875, - 0.2433013916015625, 0.331634521484375, 0.8088836669921875, - 0.8313140869140625, 0.6431121826171875, 0.03204345703125, - 0.120086669921875, 0.57879638671875, 0.400604248046875, - 0.57415771484375, 0.558349609375, 0.6919708251953125, 0.64202880859375, - 0.0582427978515625, 0.162445068359375, 0.7029266357421875, - 0.93115234375, 0.2859039306640625, 0.85906982421875, 0.7499542236328125, - 0.5787200927734375, 0.3741455078125, 0.4549407958984375, - 0.7806243896484375, 0.7199554443359375, 0.8289031982421875, - 0.9406890869140625, 0.571044921875, 0.761077880859375, - 0.2392425537109375, 0.76171875, 0.429595947265625, 0.232421875, - 0.2884521484375, 0.1095123291015625, 0.7777099609375, - 0.8795623779296875, 0.083770751953125, 0.2279815673828125, - 0.1939849853515625, 0.6250762939453125, 0.2791748046875, - 0.4125518798828125, 0.5555572509765625, 0.78936767578125, - 0.4138641357421875, 0.990478515625, 0.3477935791015625, - 0.0560760498046875, 0.0737152099609375, 0.86639404296875, - 0.373931884765625, 0.23883056640625, 0.2936859130859375, - 0.293914794921875, 0.8284912109375, 0.003265380859375, 0.33868408203125, - 0.4142608642578125, 0.5401611328125, 0.841766357421875, - 0.0836639404296875, 0.4285888671875, 0.264129638671875, - 0.8152618408203125, 0.8941802978515625, 0.9964599609375, 0.039794921875, - 0.051605224609375, 0.936798095703125, 0.7166748046875, - 0.7684783935546875, 0.969635009765625, 0.039398193359375, - 0.18389892578125, 0.435791015625, 0.476776123046875, 0.1548614501953125, - 0.389984130859375, 0.1495819091796875, 0.63006591796875, - 0.2189178466796875, 0.5051727294921875, 0.1971893310546875, - 0.2547607421875, 0.12158203125, 0.54583740234375, 0.245819091796875, - 0.4273529052734375, 0.7738494873046875, 0.73187255859375, - 0.8465576171875, 0.06866455078125, 0.78094482421875, 0.2413330078125, - 0.7093505859375, 0.7845458984375, 0.3183135986328125, 0.69476318359375, - 0.9994049072265625, 0.819366455078125, 0.44110107421875, - 0.23016357421875, 0.85247802734375, 0.4058380126953125, - 0.8632659912109375, 0.296295166015625, 0.94964599609375, - 0.8516082763671875, 0.5794830322265625, 0.321014404296875, - 0.951995849609375, 0.9271697998046875, 0.8409576416015625, - 0.41180419921875, 0.5614471435546875, 0.50103759765625, 0.1942138671875, - 0.7180328369140625, 0.0973663330078125, 0.9645233154296875, - 0.50103759765625, 0.3262176513671875, 0.385101318359375, - 0.5069580078125, 0.311065673828125, 0.3683319091796875, - 0.2696685791015625, 0.803253173828125, 0.30316162109375, - 0.76287841796875, 0.112884521484375, 0.0688934326171875, - 0.1234283447265625, 0.9517669677734375, 0.99114990234375, - 0.154266357421875, 0.6822662353515625, 0.962860107421875, - 0.983428955078125, 0.6838531494140625, 0.0982513427734375, - 0.966156005859375, 0.79608154296875, 0.807952880859375, - 0.3527984619140625, 0.3074951171875, 0.974365234375, 0.0252685546875, - 0.15234375, 0.95751953125, 0.2206268310546875, 0.12286376953125, - 0.6611480712890625, 0.0626373291015625, 0.1728515625, - 0.8661041259765625, 0.522918701171875, 0.7084503173828125, - 0.4705047607421875, 0.589691162109375, 0.15777587890625, - 0.03436279296875, 0.1186676025390625, 0.34417724609375, - 0.132904052734375, 0.2912139892578125, 0.1183319091796875, - 0.423004150390625, 0.7763824462890625, 0.187286376953125, - 0.3603973388671875, 0.84112548828125, 0.4049530029296875, - 0.3740997314453125, 0.7263641357421875, 0.4517059326171875, - 0.0359344482421875, 0.7502288818359375, 0.107269287109375, - 0.47821044921875, 0.7486572265625, 0.12744140625, 0.7715911865234375, - 0.05401611328125, 0.8087921142578125, 0.7057647705078125, - 0.5186920166015625, 0.8704833984375, 0.4843902587890625, - 0.7616119384765625, 0.8629913330078125, 0.95135498046875, - 0.3527069091796875, 0.797088623046875, 0.9854583740234375, - 0.646331787109375, 0.6039581298828125, 0.3213653564453125, - 0.70501708984375, 0.3045654296875, 0.1966705322265625, - 0.0583648681640625, 0.5816802978515625, 0.2313079833984375, - 0.9494781494140625, 0.5512542724609375, 0.922119140625, - 0.5743865966796875, 0.0744171142578125, 0.9835205078125, - 0.957733154296875, 0.57867431640625, 0.6983795166015625, - 0.371673583984375, 0.124908447265625, 0.2348785400390625, - 0.5916290283203125, 0.2730560302734375, 0.2884521484375, 0.76416015625, - 0.9716033935546875, 0.8315887451171875, 0.6201171875, 0.787017822265625, - 0.763458251953125, 0.9699554443359375, 0.10968017578125, - 0.5227508544921875, 0.3414764404296875, 0.2086334228515625, - 0.0084228515625, 0.335906982421875, 0.3568878173828125, - 0.018280029296875, 0.928497314453125, 0.968170166015625, - 0.8884429931640625, 0.139129638671875, 0.7357025146484375, - 0.2179412841796875, 0.6807708740234375, 0.7005462646484375, - 0.5645751953125, 0.7368927001953125, 0.9746246337890625, - 0.362396240234375, 0.0566558837890625, 0.411834716796875, - 0.378143310546875, 0.696533203125, 0.909759521484375, - 0.5518646240234375, 0.92352294921875, 0.7773895263671875, - 0.2603607177734375, 0.4512176513671875, 0.9481201171875, - 0.7253265380859375, 0.3873748779296875, 0.521820068359375, - 0.2757720947265625, 0.2649078369140625, 0.6080322265625, - 0.6016998291015625, 0.395904541015625, 0.3841400146484375, - 0.9739990234375, 0.515655517578125, 0.112640380859375, 0.8585205078125, - 0.28118896484375, 0.42803955078125, 0.92376708984375, - 0.3289947509765625, 0.1168365478515625, 0.373992919921875, - 0.8742523193359375, 0.8294830322265625, 0.1543731689453125, - 0.066986083984375, 0.5513916015625, 0.9539642333984375, 0.9833984375, - 0.78173828125, 0.80328369140625, 0.2593994140625, 0.9352569580078125, - 0.2431182861328125, 0.3315887451171875, 0.3549346923828125, - 0.5301361083984375, 0.78240966796875, 0.3717803955078125, - 0.844329833984375, 0.6451873779296875, 0.86572265625, - 0.6479034423828125, 0.7324676513671875, 0.1738739013671875, - 0.1627655029296875, 0.7527008056640625, 0.5934906005859375, - 0.8036346435546875, 0.6953125, 0.00177001953125, 0.1418609619140625, - 0.413055419921875, 0.3026123046875, 0.95806884765625, 0.20233154296875, - 0.7995147705078125, 0.5760498046875, 0.7755584716796875, 0.302734375, - 0.4530792236328125, 0.0748748779296875, 0.0986328125, - 0.8979644775390625, 0.7339935302734375, 0.5825958251953125, - 0.51116943359375, 0.981964111328125, 0.168365478515625, 0.9315185546875, - 0.4884033203125, 0.3595428466796875, 0.130950927734375, - 0.9399871826171875, 0.84613037109375, 0.24749755859375, - 0.6378021240234375, 0.159088134765625, 0.94952392578125, - 0.505950927734375, 0.2069549560546875, 0.28167724609375, - 0.6531219482421875, 0.4965362548828125, 0.8603057861328125, - 0.17547607421875, 0.6929168701171875, 0.5484771728515625, - 0.674957275390625, 0.4831695556640625, 0.9610137939453125, - 0.612701416015625, 0.8271331787109375, 0.8377838134765625, - 0.3487548828125, 0.739898681640625, 0.77606201171875, - 0.5232391357421875, 0.687103271484375, 0.2281494140625, - 0.9306182861328125, 0.2286834716796875, 0.0020294189453125, - 0.7603759765625, 0.1479644775390625, 0.77880859375, 0.3506927490234375, - 0.8527374267578125, 0.8868255615234375, 0.86419677734375, - 0.3942413330078125, 0.7118988037109375, 0.938140869140625, - 0.4004669189453125, 0.7849273681640625, 0.4931182861328125, - 0.28997802734375, 0.9287109375, 0.278961181640625, 0.707763671875, - 0.5430450439453125, 0.1447906494140625, 0.4719085693359375, - 0.2825927734375, 0.77398681640625, 0.147308349609375, 0.774200439453125, - 0.840728759765625, 0.08929443359375, 0.1369781494140625, - 0.481842041015625, 0.951812744140625, 0.80841064453125, - 0.421600341796875, 0.2265625, 0.5579681396484375, 0.025787353515625, - 0.3333282470703125, 0.8881072998046875, 0.2675018310546875, - 0.8316497802734375, 0.256317138671875, 0.521240234375, - 0.4064178466796875, 0.3167877197265625, 0.442291259765625, - 0.8314056396484375, 0.45806884765625, 0.55517578125, 0.5152740478515625, - 0.3910369873046875, 0.3431243896484375, 0.5775604248046875, - 0.348968505859375, 0.99786376953125, 0.527587890625, 0.126708984375, - 0.1987152099609375, 0.1631622314453125, 0.229705810546875, - 0.1996612548828125, 0.6263580322265625, 0.5520172119140625, - 0.8933258056640625, 0.9123687744140625, 0.2544097900390625, - 0.735595703125, 0.29998779296875, 0.832000732421875, 0.091156005859375, - 0.1243896484375, 0.6161346435546875, 0.7463531494140625, - 0.4428863525390625, 0.629608154296875, 0.978240966796875, - 0.0310211181640625, 0.7840118408203125, 0.3646697998046875, - 0.9413604736328125, 0.411529541015625, 0.0949859619140625, - 0.024078369140625, 0.5551605224609375, 0.1246795654296875, - 0.2338409423828125, 0.4398956298828125, 0.2921905517578125, - 0.031280517578125, 0.2007904052734375, 0.192718505859375, - 0.995819091796875, 0.6281280517578125, 0.4404754638671875, - 0.5972747802734375, 0.5138397216796875, 0.65264892578125, - 0.2112884521484375, 0.946929931640625, 0.9088897705078125, - 0.0872650146484375, 0.882965087890625, 0.88922119140625, - 0.7001800537109375, 0.729736328125, 0.865753173828125, 0.74072265625, - 0.145233154296875, 0.909637451171875, 0.990264892578125, - 0.7385406494140625, 0.190582275390625, 0.13751220703125, - 0.1115875244140625, 0.7772369384765625, 0.626312255859375, - 0.5076446533203125, 0.1300201416015625, 0.354949951171875, - 0.5726165771484375, 0.5265350341796875, 0.3138580322265625, - 0.492645263671875, 0.89215087890625, 0.3548126220703125, - 0.8795166015625, 0.7258758544921875, 0.6589813232421875, - 0.5104827880859375, 0.2830047607421875, 0.4076690673828125, - 0.0082244873046875, 0.5695343017578125, 0.722930908203125, - 0.4274444580078125, 0.3929595947265625, 0.041900634765625, - 0.6504974365234375, 0.6395721435546875, 0.025970458984375, - 0.9732666015625, 0.19970703125, 0.9045562744140625, 0.749481201171875, - 0.7064666748046875, 0.5354156494140625, 0.69415283203125, - 0.2791595458984375, 0.20257568359375, 0.13763427734375, - 0.76361083984375, 0.424468994140625, 0.537628173828125, - 0.1027984619140625, 0.9862213134765625, 0.1016998291015625, - 0.02947998046875, 0.538177490234375, 0.3698577880859375, - 0.8285675048828125, 0.839508056640625, 0.980987548828125, - 0.1539154052734375, 0.2086181640625, 0.5233306884765625, - 0.9463653564453125, 0.48577880859375, 0.057342529296875, - 0.69171142578125, 0.910400390625, 0.34185791015625, 0.721221923828125, - 0.372222900390625, 0.552520751953125, 0.9145660400390625, - 0.0954132080078125, 0.84051513671875, 0.68048095703125, - 0.6590423583984375, 0.5712738037109375, 0.7263641357421875, - 0.25567626953125, 0.2324371337890625, 0.467071533203125, - 0.849395751953125, 0.19720458984375, 0.8582763671875, 0.076416015625, - 0.21234130859375, 0.74114990234375, 0.4932098388671875, 0.88037109375, - 0.90509033203125, 0.2177734375, 0.6495819091796875, 0.06658935546875, - 0.7512664794921875, 0.68798828125, 0.4864044189453125, - 0.125152587890625, 0.6740264892578125, 0.383087158203125, - 0.360809326171875, 0.9924163818359375, 0.19482421875, - 0.5357818603515625, 0.0328826904296875, 0.842437744140625, - 0.6201019287109375, 0.0275115966796875, 0.4098052978515625, - 0.586456298828125, 0.399871826171875, 0.61346435546875, - 0.4645843505859375, 0.57305908203125, 0.0153961181640625, - 0.4881134033203125, 0.8758392333984375, 0.9061431884765625, - 0.670562744140625, 0.283111572265625, 0.401519775390625, - 0.7177276611328125, 0.666107177734375, 0.0554962158203125, - 0.934326171875, 0.5773468017578125, 0.7651214599609375, - 0.814178466796875, 0.1107330322265625, 0.8631439208984375, - 0.212646484375, 0.3190765380859375, 0.5204925537109375, 0.4954833984375, - 0.763763427734375, 0.90057373046875, 0.4599456787109375, - 0.489166259765625, 0.6099090576171875, 0.028106689453125, - 0.9765777587890625, 0.0486907958984375, 0.234222412109375, - 0.3818206787109375, 0.2400360107421875, 0.9042205810546875, - 0.2847442626953125, 0.875152587890625, 0.769012451171875, - 0.0514068603515625, 0.2817840576171875, 0.2190704345703125, - 0.911956787109375, 0.1849365234375, 0.308807373046875, - 0.9175567626953125, 0.5672607421875, 0.2623748779296875, - 0.741363525390625, 0.7831268310546875, 0.614501953125, 0.36712646484375, - 0.513519287109375, 0.66998291015625, 0.22625732421875, - 0.7403717041015625, 0.1270751953125, 0.7586669921875, 0.1697998046875, - 0.1122589111328125, 0.9293212890625, 0.371551513671875, - 0.272003173828125, 0.73590087890625, 0.09173583984375, - 0.1948089599609375, 0.8993988037109375, 0.5813751220703125, - 0.8034820556640625, 0.9949951171875, 0.252532958984375, 0.9644775390625, - 0.652862548828125, 0.9923553466796875, 0.7055511474609375, - 0.7860565185546875, 0.8064117431640625, 0.500244140625, - 0.087677001953125, 0.204559326171875, 0.9217376708984375, 0.9501953125, - 0.5235748291015625, 0.039398193359375, 0.171417236328125, - 0.396392822265625, 0.522613525390625, 0.5200347900390625, - 0.3441162109375, 0.2340240478515625, 0.360382080078125, - 0.4092559814453125, 0.1388092041015625, 0.07904052734375, - 0.29962158203125, 0.59783935546875, 0.284698486328125, - 0.7978057861328125, 0.1920928955078125, 0.342803955078125, - 0.5614471435546875, 0.8671112060546875, 0.97723388671875, - 0.059356689453125, 0.407989501953125, 0.45147705078125, - 0.8515777587890625, 0.5593414306640625, 0.340362548828125, - 0.2614288330078125, 0.9607696533203125, 0.8445892333984375, - 0.751983642578125, 0.9950103759765625, 0.3373870849609375, - 0.3637847900390625, 0.5770263671875, 0.2070770263671875, - 0.3611907958984375, 0.96636962890625, 0.3786773681640625, - 0.4866180419921875, 0.821044921875, 0.0950469970703125, - 0.6793975830078125, 0.1242523193359375, 0.3753814697265625, - 0.5652313232421875, 0.8049468994140625, 0.5313262939453125, - 0.7407379150390625, 0.1442413330078125, 0.32421875, 0.2153167724609375, - 0.50830078125, 0.749053955078125, 0.917083740234375, 0.33197021484375, - 0.835052490234375, 0.5838623046875, 0.868011474609375, 0.5576171875, - 0.7603302001953125, 0.5041046142578125, 0.18975830078125, - 0.657684326171875, 0.111663818359375, 0.738037109375, - 0.9931793212890625, 0.2867431640625, 0.7167205810546875, - 0.5070343017578125, 0.6998291015625, 0.220367431640625, 0.9345703125, - 0.3072509765625, 0.0946502685546875, 0.0395355224609375, - 0.7476959228515625, 0.76202392578125, 0.9929351806640625, - 0.7356109619140625, 0.5174713134765625, 0.5250091552734375, - 0.5363922119140625, 0.126617431640625, 0.8982391357421875, - 0.3634490966796875, 0.0963287353515625, 0.253143310546875, - 0.72418212890625, 0.739776611328125, 0.3206329345703125, - 0.59515380859375, 0.6198577880859375, 0.261962890625, 0.176177978515625, - 0.1689910888671875, 0.248199462890625, 0.9938812255859375, - 0.740753173828125, 0.6249847412109375, 0.3194427490234375, - 0.38482666015625, 0.258697509765625, 0.665008544921875, - 0.530731201171875, 0.9066925048828125, 0.6761627197265625, - 0.17132568359375, 0.0426177978515625, 0.40716552734375, - 0.02752685546875, 0.720672607421875, 0.6964263916015625, - 0.023773193359375, 0.2505645751953125, 0.9491424560546875, - 0.3348541259765625, 0.4464263916015625, 0.829864501953125, - 0.2672119140625, 0.18896484375, 0.2349700927734375, 0.2571868896484375, - 0.9058380126953125, 0.956329345703125, 0.25836181640625, - 0.729095458984375, 0.3450164794921875, 0.292388916015625, - 0.2830810546875, 0.8715972900390625, 0.44805908203125, - 0.7690277099609375, 0.2683868408203125, 0.6190032958984375, - 0.0283203125, 0.5772552490234375, 0.5325775146484375, - 0.4726715087890625, 0.5189361572265625, 0.71795654296875, - 0.610260009765625, 0.160888671875, 0.8654327392578125, - 0.2710113525390625, 0.129150390625, 0.6736907958984375, - 0.7946929931640625, 0.4246826171875, 0.4241790771484375, - 0.912078857421875, 0.4112396240234375, 0.1346435546875, - 0.9068450927734375, 0.709869384765625, 0.4250946044921875, - 0.9363861083984375, 0.344635009765625, 0.8969573974609375, - 0.3800811767578125, 0.143157958984375, 0.9210052490234375, - 0.4203948974609375, 0.6661834716796875, 0.2740936279296875, - 0.56683349609375, 0.6165771484375, 0.7458953857421875, - 0.7079010009765625, 0.3570556640625, 0.549102783203125, - 0.238250732421875, 0.06292724609375, 0.86376953125, 0.0408172607421875, - 0.3467254638671875, 0.0537872314453125, 0.7791595458984375, - 0.9074249267578125, 0.724151611328125, 0.7307891845703125, - 0.1759033203125, 0.8707275390625, 0.60015869140625, 0.5303497314453125, - 0.88958740234375, 0.266082763671875, 0.075439453125, 0.870697021484375, - 0.205718994140625, 0.20281982421875, 0.59088134765625, - 0.341217041015625, 0.3360748291015625, 0.3000030517578125, - 0.403045654296875, 0.54150390625, 0.728179931640625, 0.7602081298828125, - 0.06884765625, 0.55218505859375, 0.659393310546875, 0.54559326171875, - 0.13494873046875, 0.8609161376953125, 0.469329833984375, - 0.4135894775390625, 0.1746673583984375, 0.408233642578125, - 0.5022125244140625, 0.44818115234375, 0.9027252197265625, - 0.116607666015625, 0.8958282470703125, 0.152923583984375, - 0.2291259765625, 0.6899566650390625, 0.303863525390625, - 0.362457275390625, 0.715911865234375, 0.981536865234375, - 0.5205841064453125, 0.2353057861328125, 0.603912353515625, - 0.3248748779296875, 0.2199859619140625, 0.2661285400390625, - 0.320831298828125, 0.620574951171875, 0.8719024658203125, - 0.1348724365234375, 0.14093017578125, 0.4458465576171875, - 0.7566680908203125, 0.27642822265625, 0.7537689208984375, - 0.4035186767578125, 0.370574951171875, 0.0688629150390625, - 0.9286956787109375, 0.19580078125, 0.3776702880859375, - 0.2364654541015625, 0.7376556396484375, 0.6104888916015625, - 0.043182373046875, 0.8293609619140625, 0.13226318359375, - 0.9868927001953125, 0.39630126953125, 0.396484375, 0.9409942626953125, - 0.3132171630859375, 0.27337646484375, 0.2472686767578125, - 0.522674560546875, 0.5850982666015625, 0.5660400390625, - 0.198638916015625, 0.62548828125, 0.8176727294921875, 0.216094970703125, - 0.8502044677734375, 0.4526519775390625, 0.6579132080078125, - 0.1581573486328125, 0.058837890625, 0.5365447998046875, 0.576416015625, - 0.514251708984375, 0.22125244140625, 0.469451904296875, - 0.816802978515625, 0.433074951171875, 0.694427490234375, - 0.374114990234375, 0.6855621337890625, 0.6144866943359375, - 0.9689788818359375, 0.1029052734375, 0.52313232421875, - 0.2029266357421875, 0.0235443115234375, 0.117767333984375, - 0.9141998291015625, 0.669952392578125, 0.87713623046875, - 0.6631927490234375, 0.3518218994140625, 0.504608154296875, - 0.998382568359375, 0.804473876953125, 0.5018310546875, - 0.329254150390625, 0.5312347412109375, 0.2015838623046875, - 0.2688751220703125, 0.353302001953125, 0.3568878173828125, - 0.1616668701171875, 0.9334716796875, 0.8092498779296875, - 0.1969146728515625, 0.9556732177734375, 0.0294036865234375, - 0.7839813232421875, 0.6490631103515625, 0.8825836181640625, - 0.8897552490234375, 0.4751434326171875, 0.6346588134765625, - 0.67669677734375, 0.5760040283203125, 0.8234405517578125, - 0.298736572265625, 0.527191162109375, 0.461700439453125, - 0.996612548828125, 0.819244384765625, 0.0759124755859375, - 0.2899169921875, 0.6860198974609375, 0.9284820556640625, - 0.7085113525390625, 0.6069793701171875, 0.8078765869140625, - 0.9207916259765625, 0.336029052734375, 0.63702392578125, - 0.6886444091796875, 0.4849853515625, 0.232269287109375, - 0.9522247314453125, 0.9595794677734375, 0.7293243408203125, - 0.04327392578125, 0.7520294189453125, 0.74884033203125, - 0.4271392822265625, 0.9842529296875, 0.0058441162109375, - 0.8581695556640625, 0.2770233154296875, 0.7301025390625, - 0.37115478515625, 0.6469573974609375, 0.712371826171875, - 0.9013214111328125, 0.31597900390625, 0.549285888671875, - 0.1015777587890625, 0.8858795166015625, 0.4061279296875, - 0.09991455078125, 0.4288482666015625, 0.2552337646484375, - 0.081085205078125, 0.2695159912109375, 0.1145782470703125, - 0.4779205322265625, 0.0416717529296875, 0.4341888427734375, - 0.9901580810546875, 0.317169189453125, 0.7043609619140625, - 0.5943450927734375, 0.1153564453125, 0.6334228515625, 0.019439697265625, - 0.093475341796875, 0.4218902587890625, 0.6242218017578125, - 0.59454345703125, 0.29107666015625, 0.07147216796875, - 0.0941925048828125, 0.6159515380859375, 0.224273681640625, - 0.2211761474609375, 0.785491943359375, 0.40570068359375, - 0.1611785888671875, 0.595245361328125, 0.7899017333984375, - 0.1980743408203125, 0.35919189453125, 0.2873687744140625, - 0.1469879150390625, 0.51409912109375, 0.4028167724609375, - 0.6126556396484375, 0.899993896484375, 0.7686004638671875, - 0.56658935546875, 0.064666748046875, 0.182525634765625, - 0.995880126953125, 0.5572509765625, 0.8549957275390625, - 0.3482818603515625, 0.686248779296875, 0.9580078125, 0.732635498046875, - 0.9788665771484375, 0.9241485595703125, 0.1396484375, - 0.5667877197265625, 0.76849365234375, 0.631134033203125, - 0.3292694091796875, 0.871612548828125, 0.9767608642578125, - 0.7940521240234375, 0.6597137451171875, 0.838623046875, - 0.75946044921875, 0.295440673828125, 0.9179534912109375, - 0.532806396484375, 0.5441436767578125, 0.652374267578125, - 0.6199951171875, 0.2357025146484375, 0.535308837890625, - 0.9430084228515625, 0.1087799072265625, 0.2153472900390625, - 0.59002685546875, 0.6376495361328125, 0.307647705078125, - 0.0088653564453125, 0.746673583984375, 0.472259521484375, 0.4052734375, - 0.29571533203125, 0.0400543212890625, 0.0182342529296875, - 0.421234130859375, 0.366058349609375, 0.6239776611328125, - 0.501251220703125, 0.7828521728515625, 0.8383636474609375, - 0.518707275390625, 0.242767333984375, 0.105377197265625, - 0.9654083251953125, 0.69049072265625, 0.5433197021484375, - 0.8468475341796875, 0.4920806884765625, 0.833587646484375, - 0.729766845703125, 0.393463134765625, 0.8564453125, 0.4764862060546875, - 0.4916534423828125, 0.19189453125, 0.778045654296875, - 0.4459991455078125, 0.76727294921875, 0.7850189208984375, - 0.375213623046875, 0.6713409423828125, 0.9122161865234375, - 0.1002197265625, 0.9092559814453125, 0.385345458984375, 0.90625, - 0.31304931640625, 0.224334716796875, 0.945220947265625, - 0.3643951416015625, 0.0617218017578125, 0.66339111328125, - 0.6248931884765625, 0.2441558837890625, 0.6810302734375, - 0.9330291748046875, 0.284576416015625, 0.4268341064453125, - 0.367767333984375, 0.756683349609375, 0.60760498046875, - 0.6999053955078125, 0.6392822265625, 0.7529449462890625, - 0.0756988525390625, 0.1480865478515625, 0.722869873046875, - 0.9041748046875, 0.1201171875, 0.2143096923828125, 0.785797119140625, - 0.5714874267578125, 0.1666412353515625, 0.38250732421875, - 0.6120452880859375, 0.2149658203125, 0.1944122314453125, - 0.2281494140625, 0.94610595703125, 0.0748748779296875, - 0.7159271240234375, 0.793975830078125, 0.336761474609375, - 0.3357086181640625, 0.0749053955078125, 0.7100982666015625, - 0.82598876953125, 0.886688232421875, 0.766265869140625, - 0.519378662109375, 0.635955810546875, 0.2966766357421875, - 0.0392608642578125, 0.666748046875, 0.4347991943359375, - 0.1279754638671875, 0.9044952392578125, 0.02178955078125, - 0.8777313232421875, 0.6823883056640625, 0.65338134765625, - 0.8023529052734375, 0.4628753662109375, 0.9486846923828125, - 0.42291259765625, 0.6107025146484375, 0.00128173828125, - 0.4673004150390625, 0.33612060546875, 0.51593017578125, - 0.8167877197265625, 0.5151519775390625, 0.583740234375, - 0.42376708984375, 0.3037872314453125, 0.875946044921875, - 0.9551239013671875, 0.1995697021484375, 0.8345489501953125, - 0.946868896484375, 0.7872314453125, 0.30657958984375, 0.87445068359375, - 0.8251953125, 0.3969573974609375, 0.955841064453125, 0.901214599609375, - 0.655364990234375, 0.8847808837890625, 0.01385498046875, - 0.2472686767578125, 0.6416778564453125, 0.1006622314453125, - 0.8004608154296875, 0.4255523681640625, 0.489990234375, - 0.317474365234375, 0.085052490234375, 0.2882232666015625, - 0.779693603515625, 0.545928955078125, 0.873748779296875, - 0.99237060546875, 0.4288482666015625, 0.20611572265625, 0.3172607421875, - 0.606842041015625, 0.24029541015625, 0.3133087158203125, - 0.9219207763671875, 0.75103759765625, 0.406097412109375, - 0.9976959228515625, 0.6342010498046875, 0.2687530517578125, - 0.048370361328125, 0.2378387451171875, 0.991546630859375, - 0.5967559814453125, 0.121826171875, 0.9070281982421875, - 0.21197509765625, 0.452728271484375, 0.422454833984375, - 0.837860107421875, 0.126190185546875, 0.7321319580078125, - 0.7173919677734375, 0.47705078125, 0.7383270263671875, - 0.170806884765625, 0.02923583984375, 0.7621307373046875, - 0.2743682861328125, 0.595672607421875, 0.0740814208984375, - 0.9862518310546875, 0.6280975341796875, 0.408721923828125, - 0.4293212890625, 0.885040283203125, 0.3027496337890625, - 0.6058807373046875, 0.57891845703125, 0.609222412109375, - 0.710845947265625, 0.0412445068359375, 0.8083648681640625, - 0.172821044921875, 0.050872802734375, 0.7632598876953125, - 0.7111358642578125, 0.6958770751953125, 0.96466064453125, - 0.7699737548828125, 0.467559814453125, 0.657806396484375, - 0.8111724853515625, 0.54437255859375, 0.6878509521484375, - 0.9227142333984375, 0.5574493408203125, 0.605682373046875, - 0.7243499755859375, 0.08001708984375, 0.4124755859375, - 0.174468994140625, 0.57659912109375, 0.715545654296875, - 0.3758697509765625, 0.9384765625, 0.9859771728515625, 0.292724609375, - 0.1030731201171875, 0.607635498046875, 0.24359130859375, - 0.876739501953125, 0.48602294921875, 0.015869140625, 0.2734375, - 0.4477386474609375, 0.000885009765625, 0.1385345458984375, - 0.208587646484375, 0.02679443359375, 0.06719970703125, - 0.938018798828125, 0.318939208984375, 0.9589691162109375, - 0.4011383056640625, 0.446990966796875, 0.1324462890625, - 0.5676727294921875, 0.7405853271484375, 0.5274505615234375, - 0.38177490234375, 0.8406524658203125, 0.50653076171875, - 0.9299163818359375, 0.8072509765625, 0.408447265625, 0.1494293212890625, - 0.8798065185546875, 0.1430816650390625, 0.7194061279296875, - 0.1734161376953125, 0.4869384765625, 0.400634765625, 0.065948486328125, - 0.8673553466796875, 0.3947296142578125, 0.0391387939453125, - 0.195098876953125, 0.606231689453125, 0.0171661376953125, - 0.85260009765625, 0.1069183349609375, 0.0731353759765625, - 0.867279052734375, 0.504150390625, 0.964813232421875, - 0.4353179931640625, 0.3052825927734375, 0.6361541748046875, - 0.705657958984375, 0.922088623046875, 0.007110595703125, - 0.0335693359375, 0.4384307861328125, 0.9382171630859375, 0.634521484375, - 0.897796630859375, 0.341888427734375, 0.7185211181640625, - 0.6426544189453125, 0.354827880859375, 0.543121337890625, - 0.880767822265625, 0.4228515625, 0.53448486328125, 0.5198974609375, - 0.3340606689453125, 0.957000732421875, 0.15191650390625, - 0.830047607421875, 0.73828125, 0.619049072265625, 0.8025054931640625, - 0.3976287841796875, 0.124542236328125, 0.70709228515625, - 0.18511962890625, 0.635223388671875, 0.655303955078125, 0.750244140625, - 0.8144073486328125, 0.088592529296875, 0.4011993408203125, - 0.6883087158203125, 0.9803924560546875, 0.5366058349609375, - 0.704376220703125, 0.912078857421875, 0.26934814453125, - 0.3757781982421875, 0.1888275146484375, 0.54345703125, - 0.8936920166015625, 0.286468505859375, 0.9813385009765625, - 0.774749755859375, 0.3447265625, 0.903839111328125, 0.861083984375, - 0.889984130859375, 0.344451904296875, 0.4331817626953125, - 0.8451995849609375, 0.0612945556640625, 0.305999755859375, - 0.1349029541015625, 0.792694091796875, 0.87628173828125, - 0.617584228515625, 0.7281341552734375, 0.968292236328125, - 0.4477691650390625, 0.193389892578125, 0.4728851318359375, - 0.3616180419921875, 0.3519134521484375, 0.4266815185546875, - 0.6695098876953125, 0.89532470703125, 0.4901123046875, - 0.416168212890625, 0.0566558837890625, 0.9603271484375, - 0.4750823974609375, 0.40972900390625, 0.811126708984375, - 0.246917724609375, 0.223846435546875, 0.1538848876953125, 0.76220703125, - 0.6338348388671875, 0.611358642578125, 0.48712158203125, - 0.6204071044921875, 0.1026611328125, 0.33746337890625, 0.6400146484375, - 0.1230621337890625, 0.024658203125, 0.352874755859375, - 0.6761627197265625, 0.1544647216796875, 0.910308837890625, - 0.6139984130859375, 0.0277862548828125, 0.8264312744140625, - 0.630828857421875, 0.467620849609375, 0.0246429443359375, - 0.429718017578125, 0.2221832275390625, 0.065704345703125, - 0.8172454833984375, 0.8804779052734375, 0.6220703125, 0.7049560546875, - 0.3471832275390625, 0.7233734130859375, 0.280120849609375, - 0.443695068359375, 0.6988067626953125, 0.1209259033203125, - 0.780120849609375, 0.7797698974609375, 0.62628173828125, - 0.890167236328125, 0.22723388671875, 0.3899688720703125, - 0.2425079345703125, 0.241424560546875, 0.842620849609375, - 0.9000396728515625, 0.9610443115234375, 0.857879638671875, - 0.1516265869140625, 0.4619293212890625, 0.552490234375, - 0.962554931640625, 0.128387451171875, 0.274200439453125, - 0.5460052490234375, 0.7010650634765625, 0.9844207763671875, - 0.2913818359375, 0.598358154296875, 0.505950927734375, - 0.693267822265625, 0.3399505615234375, 0.8871307373046875, - 0.770416259765625, 0.744476318359375, 0.159271240234375, - 0.396759033203125, 0.48211669921875, 0.9323883056640625, 0.001220703125, - 0.22821044921875, 0.8892364501953125, 0.6451263427734375, - 0.39788818359375, 0.7148590087890625, 0.164337158203125, - 0.0608673095703125, 0.8350677490234375, 0.29058837890625, - 0.4430389404296875, 0.7220458984375, 0.7938079833984375, - 0.2685699462890625, 0.4757537841796875, 0.32904052734375, - 0.47625732421875, 0.1454925537109375, 0.12164306640625, - 0.88055419921875, 0.0511932373046875, 0.1608123779296875, - 0.3603363037109375, 0.916778564453125, 0.425079345703125, - 0.27740478515625, 0.025970458984375, 0.4608154296875, - 0.3555145263671875, 0.7106781005859375, 0.8443145751953125, - 0.6847076416015625, 0.2532958984375, 0.2083282470703125, - 0.48297119140625, 0.742401123046875, 0.1142578125, 0.7940216064453125, - 0.4720306396484375, 0.044891357421875, 0.39495849609375, - 0.8483428955078125, 0.3495025634765625, 0.6322021484375, - 0.7565155029296875, 0.3843536376953125, 0.4318695068359375, - 0.1059112548828125, 0.2127227783203125, 0.242401123046875, - 0.5771636962890625, 0.5229034423828125, 0.957183837890625, - 0.8806915283203125, 0.6561126708984375, 0.446624755859375, - 0.66375732421875, 0.9229888916015625, 0.4030609130859375, - 0.0548248291015625, 0.341949462890625, 0.3841094970703125, - 0.1954193115234375, 0.0480499267578125, 0.9387664794921875, - 0.44769287109375, 0.420135498046875, 0.55108642578125, 0.3779296875, - 0.35345458984375, 0.8102874755859375, 0.83837890625, 0.0554962158203125, - 0.6810150146484375, 0.837493896484375, 0.1978759765625, - 0.9764251708984375, 0.795989990234375, 0.5098876953125, - 0.9889984130859375, 0.230743408203125, 0.4202880859375, - 0.6921844482421875, 0.342864990234375, 0.5243072509765625, - 0.7601318359375, 0.92742919921875, 0.7298126220703125, - 0.2844390869140625, 0.6049346923828125, 0.973388671875, - 0.9532318115234375, 0.240203857421875, 0.297027587890625, - 0.523651123046875, 0.7657928466796875, 0.636688232421875, - 0.139862060546875, 0.70819091796875, 0.9237823486328125, - 0.2780914306640625, 0.5259246826171875, 0.223724365234375, - 0.59796142578125, 0.3339996337890625, 0.3214111328125, - 0.9059906005859375, 0.105926513671875, 0.846466064453125, - 0.631927490234375, 0.358001708984375, 0.9173431396484375, - 0.8003692626953125, 0.2186737060546875, 0.0456085205078125, - 0.413787841796875, 0.890655517578125, 0.6087799072265625, 0.55517578125, - 0.3572235107421875, 0.1042327880859375, 0.2682647705078125, - 0.75714111328125, 0.97039794921875, 0.01953125, 0.563018798828125, - 0.3059844970703125, 0.8171844482421875, 0.8844146728515625, - 0.0931396484375, 0.9352874755859375, 0.3760528564453125, - 0.98602294921875, 0.4786834716796875, 0.3472747802734375, - 0.4541473388671875, 0.831451416015625, 0.8287200927734375, - 0.038848876953125, 0.571929931640625, 0.662078857421875, - 0.44793701171875, 0.0533599853515625, 0.9572906494140625, - 0.6782684326171875, 0.866790771484375, 0.3912200927734375, - 0.5765838623046875, 0.4805450439453125, 0.6397857666015625, - 0.3233184814453125, 0.914520263671875, 0.218109130859375, - 0.9482574462890625, 0.1236724853515625, 0.268768310546875, - 0.863189697265625, 0.411468505859375, 0.53082275390625, 0.995361328125, - 0.35223388671875, 0.7213592529296875, 0.4103546142578125, - 0.79718017578125, 0.8598785400390625, 0.7769775390625, - 0.9556427001953125, 0.5786285400390625, 0.4586181640625, - 0.712493896484375, 0.5837554931640625, 0.52532958984375, - 0.2591705322265625, 0.91070556640625, 0.378936767578125, 0.874755859375, - 0.833953857421875, 0.54705810546875, 0.8707122802734375, - 0.6001129150390625, 0.8618621826171875, 0.128326416015625, - 0.4192352294921875, 0.2184295654296875, 0.6668853759765625, - 0.1212921142578125, 0.1373443603515625, 0.70147705078125, - 0.4721221923828125, 0.9046478271484375, 0.862030029296875, - 0.9910430908203125, 0.89886474609375, 0.901031494140625, - 0.0399627685546875, 0.4479522705078125, 0.427886962890625, - 0.398590087890625, 0.0854949951171875, 0.693389892578125, - 0.5069427490234375, 0.451690673828125, 0.3960418701171875, - 0.74737548828125, 0.076263427734375, 0.9981842041015625, - 0.0994110107421875, 0.192718505859375, 0.86474609375, - 0.0249481201171875, 0.8390960693359375, 0.921844482421875, 0.9208984375, - 0.08489990234375, 0.8653564453125, 0.71728515625, 0.0120849609375, - 0.2962493896484375, 0.91070556640625, 0.11029052734375, - 0.6583099365234375, 0.4362945556640625, 0.56427001953125, - 0.0389862060546875, 0.8088836669921875, 0.4333953857421875, - 0.2287445068359375, 0.595306396484375, 0.0312957763671875, - 0.215057373046875, 0.55413818359375, 0.0778656005859375, - 0.8145599365234375, 0.719268798828125, 0.171966552734375, - 0.521209716796875, 0.0265655517578125, 0.4493865966796875, - 0.8588714599609375, 0.3268890380859375, 0.4482574462890625, - 0.1757659912109375, 0.829010009765625, 0.01605224609375, - 0.1939239501953125, 0.8004302978515625, 0.436248779296875, - 0.9969940185546875, 0.772796630859375, 0.5040283203125, 0.04541015625, - 0.894744873046875, 0.92474365234375, 0.6835174560546875, - 0.0055999755859375, 0.183624267578125, 0.459442138671875, - 0.230926513671875, 0.990447998046875, 0.7130889892578125, - 0.1427001953125, 0.715087890625, 0.31561279296875, 0.4700927734375, - 0.427093505859375, 0.43280029296875, 0.7906646728515625, 0.033203125, - 0.3373260498046875, 0.6117095947265625, 0.660797119140625, - 0.249847412109375, 0.423797607421875, 0.79730224609375, - 0.9572906494140625, 0.3708343505859375, 0.904541015625, 0.072265625, - 0.215545654296875, 0.9070892333984375, 0.0340576171875, - 0.9823150634765625, 0.572662353515625, 0.21514892578125, - 0.6451873779296875, 0.25006103515625, 0.808013916015625, - 0.286163330078125, 0.83740234375, 0.3992462158203125, - 0.3451690673828125, 0.5514984130859375, 0.2075042724609375, - 0.7317352294921875, 0.09954833984375, 0.69256591796875, - 0.0346832275390625, 0.32415771484375, 0.0015106201171875, - 0.3223419189453125, 0.115081787109375, 0.084320068359375, - 0.46942138671875, 0.7310791015625, 0.9036865234375, 0.7614593505859375, - 0.835662841796875, 0.4766693115234375, 0.76788330078125, - 0.585296630859375, 0.4561614990234375, 0.0013580322265625, - 0.9642791748046875, 0.6851654052734375, 0.177642822265625, - 0.824798583984375, 0.3580474853515625, 0.248748779296875, - 0.140716552734375, 0.6266937255859375, 0.5140838623046875, - 0.8664398193359375, 0.28875732421875, 0.4813079833984375, 0.81396484375, - 0.95916748046875, 0.882171630859375, 0.0582733154296875, - 0.698699951171875, 0.0572052001953125, 0.476898193359375, - 0.042572021484375, 0.9760589599609375, 0.6356964111328125, - 0.88177490234375, 0.1875457763671875, 0.7100982666015625, - 0.469268798828125, 0.8798828125, 0.023590087890625, 0.6650390625, - 0.4832305908203125, 0.5129547119140625, 0.353302001953125, - 0.7619781494140625, 0.7702484130859375, 0.95343017578125, - 0.680328369140625, 0.685943603515625, 0.75762939453125, - 0.1511077880859375, 0.20660400390625, 0.84619140625, 0.65008544921875, - 0.011383056640625, 0.6522064208984375, 0.7014312744140625, - 0.4285430908203125, 0.9379425048828125, 0.3221588134765625, - 0.40496826171875, 0.8374786376953125, 0.55181884765625, 0.9068603515625, - 0.8163299560546875, 0.681640625, 0.4405364990234375, 0.239013671875, - 0.888885498046875, 0.4626922607421875, 0.0501861572265625, - 0.89544677734375, 0.21209716796875, 0.2569122314453125, 0.283935546875, - 0.6753692626953125, 0.5529022216796875, 0.9083709716796875, - 0.019805908203125, 0.3075103759765625, 0.1744232177734375, - 0.114288330078125, 0.5665130615234375, 0.024078369140625, - 0.0005340576171875, 0.1407928466796875, 0.24322509765625, - 0.162017822265625, 0.616424560546875, 0.5136566162109375, - 0.2483673095703125, 0.440643310546875, 0.2724609375, 0.210723876953125, - 0.9139556884765625, 0.5885162353515625, 0.9886322021484375, - 0.08544921875, 0.4766845703125, 0.32623291015625, 0.2983551025390625, - 0.9922637939453125, 0.8549957275390625, 0.562652587890625, - 0.8349151611328125, 0.853271484375, 0.3442535400390625, - 0.4398956298828125, 0.491729736328125, 0.3514251708984375, - 0.03369140625, 0.7118377685546875, 0.711761474609375, 0.158233642578125, - 0.5206756591796875, 0.43756103515625, 0.4396209716796875, 0.90087890625, - 0.4598388671875, 0.7539825439453125, 0.6514739990234375, - 0.6138458251953125, 0.0476531982421875, 0.341217041015625, - 0.161468505859375, 0.0852813720703125, 0.1053314208984375, - 0.5341644287109375, 0.2164154052734375, 0.5966796875, - 0.1060333251953125, 0.229217529296875, 0.788177490234375, - 0.35955810546875, 0.87176513671875, 0.2266387939453125, - 0.2503204345703125, 0.446044921875, 0.010986328125, 0.0056610107421875, - 0.9425811767578125, 0.6173858642578125, 0.6954193115234375, - 0.21124267578125, 0.13323974609375, 0.08746337890625, 0.019317626953125, - 0.432159423828125, 0.5238037109375, 0.5896759033203125, - 0.9394989013671875, 0.5657958984375, 0.621246337890625, - 0.7761077880859375, 0.316070556640625, 0.582061767578125, - 0.4482574462890625, 0.1141357421875, 0.4797821044921875, - 0.473663330078125, 0.72894287109375, 0.024505615234375, - 0.2775421142578125, 0.0325927734375, 0.3726654052734375, - 0.98638916015625, 0.5925750732421875, 0.9749908447265625, - 0.932830810546875, 0.201263427734375, 0.2323455810546875, - 0.12493896484375, 0.0172576904296875, 0.799530029296875, - 0.6459808349609375, 0.2976531982421875, 0.900726318359375, - 0.0043487548828125, 0.687408447265625, 0.788238525390625, - 0.8300018310546875, 0.18072509765625, 0.8928985595703125, - 0.1194000244140625, 0.3777618408203125, 0.8547821044921875, - 0.7072601318359375, 0.47296142578125, 0.9820404052734375, - 0.9811248779296875, 0.176177978515625, 0.9850921630859375, - 0.8115692138671875, 0.6810760498046875, 0.2274169921875, - 0.8347930908203125, 0.7087554931640625, 0.5485382080078125, - 0.62811279296875, 0.0492401123046875, 0.3668365478515625, - 0.9125213623046875, 0.314056396484375, 0.364959716796875, - 0.35028076171875, 0.68206787109375, 0.545501708984375, - 0.6062774658203125, 0.574798583984375, 0.5006866455078125, - 0.793487548828125, 0.1950531005859375, 0.9447784423828125, - 0.7066497802734375, 0.9910736083984375, 0.05938720703125, - 0.7443084716796875, 0.1070098876953125, 0.710418701171875, - 0.31689453125, 0.486907958984375, 0.88641357421875, 0.3871612548828125, - 0.834320068359375, 0.4427337646484375, 0.2384490966796875, - 0.940765380859375, 0.63775634765625, 0.162445068359375, - 0.465972900390625, 0.878448486328125, 0.7635650634765625, - 0.498748779296875, 0.505523681640625, 0.363800048828125, - 0.933135986328125, 0.17718505859375, 0.838470458984375, - 0.4263458251953125, 0.5717926025390625, 0.158721923828125, - 0.5112457275390625, 0.7173919677734375, 0.0059967041015625, - 0.1515960693359375, 0.0112152099609375, 0.1028594970703125, - 0.639923095703125, 0.9701995849609375, 0.5807037353515625, - 0.1199951171875, 0.4309844970703125, 0.3833160400390625, - 0.0027008056640625, 0.6973419189453125, 0.635223388671875, - 0.58465576171875, 0.2111053466796875, 0.53289794921875, - 0.4904327392578125, 0.8440704345703125, 0.087127685546875, - 0.692047119140625, 0.7910919189453125, 0.840423583984375, - 0.9505157470703125, 0.951629638671875, 0.7547760009765625, - 0.3280029296875, 0.745758056640625, 0.013427734375, 0.0760040283203125, - 0.8539886474609375, 0.905426025390625, 0.8759918212890625, - 0.5245208740234375, 0.9977874755859375, 0.52435302734375, - 0.752166748046875, 0.0283355712890625, 0.79180908203125, - 0.3099365234375, 0.450164794921875, 0.128509521484375, - 0.4449005126953125, 0.0674285888671875, 0.834869384765625, - 0.3502044677734375, 0.9422760009765625, 0.54449462890625, - 0.1984405517578125, 0.1302947998046875, 0.07086181640625, - 0.6544647216796875, 0.4730224609375, 0.4398345947265625, - 0.615264892578125, 0.352935791015625, 0.1035308837890625, - 0.94549560546875, 0.6561279296875, 0.8557586669921875, 0.0751953125, - 0.6013641357421875, 0.977447509765625, 0.0263214111328125, - 0.80938720703125, 0.9245147705078125, 0.311126708984375, 0.964599609375, - 0.96929931640625, 0.599609375, 0.1178741455078125, 0.1685333251953125, - 0.2687225341796875, 0.7024383544921875, 0.2452392578125, - 0.3045196533203125, 0.2275390625, 0.771759033203125, 0.781341552734375, - 0.3476409912109375, 0.2753753662109375, 0.5014190673828125, - 0.74365234375, 0.178955078125, 0.307037353515625, 0.8692779541015625, - 0.3827056884765625, 0.5449981689453125, 0.7491607666015625, - 0.2667083740234375, 0.218719482421875, 0.952606201171875, - 0.669891357421875, 0.0103912353515625, 0.1886749267578125, - 0.7138824462890625, 0.2300262451171875, 0.2675323486328125, - 0.6093902587890625, 0.861907958984375, 0.4399871826171875, - 0.2621307373046875, 0.4137420654296875, 0.5079193115234375, - 0.49322509765625, 0.7146759033203125, 0.9770050048828125, - 0.867034912109375, 0.4246978759765625, 0.43743896484375, 0.213134765625, - 0.3073272705078125, 0.203643798828125, 0.3759002685546875, - 0.5422210693359375, 0.2825469970703125, 0.97637939453125, - 0.0872955322265625, 0.2200927734375, 0.807586669921875, - 0.961090087890625, 0.5150146484375, 0.3769073486328125, - 0.5080108642578125, 0.945465087890625, 0.899383544921875, - 0.9874725341796875, 0.9330291748046875, 0.36083984375, 0.541015625, - 0.7458953857421875, 0.5121917724609375, 0.3792572021484375, - 0.3145294189453125, 0.9573516845703125, 0.82745361328125, - 0.897674560546875, 0.102142333984375, 0.78009033203125, - 0.63226318359375, 0.157012939453125, 0.9122314453125, 0.8070068359375, - 0.6630401611328125, 0.3561248779296875, 0.806304931640625, - 0.77001953125, 0.1826171875, 0.35009765625, 0.6028289794921875, - 0.003997802734375, 0.8254241943359375, 0.5332489013671875, - 0.4101409912109375, 0.72998046875, 0.4604339599609375, - 0.6353912353515625, 0.88922119140625, 0.4723663330078125, - 0.5640869140625, 0.851715087890625, 0.5803375244140625, - 0.5696868896484375, 0.588287353515625, 0.40692138671875, - 0.3082733154296875, 0.3826446533203125, 0.3153228759765625, - 0.16046142578125, 0.0338287353515625, 0.0910186767578125, - 0.97979736328125, 0.2808380126953125, 0.3639984130859375, - 0.5764923095703125, 0.203094482421875, 0.644683837890625, - 0.866943359375, 0.4240570068359375, 0.021514892578125, 0.60260009765625, - 0.564178466796875, 0.7681884765625, 0.5384368896484375, - 0.566314697265625, 0.4105682373046875, 0.1731109619140625, - 0.1296844482421875, 0.51385498046875, 0.7376251220703125, - 0.058868408203125, 0.9920654296875, 0.5214080810546875, - 0.7933502197265625, 0.9558563232421875, 0.594268798828125, - 0.582366943359375, 0.0706939697265625, 0.4031219482421875, - 0.599151611328125, 0.8111572265625, 0.640655517578125, 0.28228759765625, - 0.6935882568359375, 0.5428314208984375, 0.8881378173828125, - 0.2406158447265625, 0.2498016357421875, 0.0797119140625, - 0.5425262451171875, 0.40289306640625, 0.16033935546875, - 0.133880615234375, 0.785675048828125, 0.401336669921875, - 0.4874725341796875, 0.057098388671875, 0.8783416748046875, - 0.7381134033203125, 0.8206329345703125, 0.3952178955078125, - 0.16033935546875, 0.780487060546875, 0.7748260498046875, - 0.7551422119140625, 0.8380126953125, 0.0663909912109375, - 0.1193695068359375, 0.885772705078125, 0.4367523193359375, - 0.7292938232421875, 0.6497039794921875, 0.71026611328125, - 0.727935791015625, 0.976287841796875, 0.2103118896484375, - 0.85113525390625, 0.686431884765625, 0.94488525390625, - 0.4128875732421875, 0.6396331787109375, 0.87921142578125, - 0.0042724609375, 0.7801971435546875, 0.580078125, 0.3616180419921875, - 0.9853668212890625, 0.0301971435546875, 0.4358673095703125, - 0.3662261962890625, 0.5285491943359375, 0.1000823974609375, - 0.3966522216796875, 0.90625, 0.8219146728515625, 0.94598388671875, - 0.0356903076171875, 0.9139404296875, 0.3467864990234375, - 0.3900909423828125, 0.1466064453125, 0.5755767822265625, - 0.9336090087890625, 0.934326171875, 0.0361785888671875, - 0.37774658203125, 0.7275543212890625, 0.1250762939453125, - 0.2086639404296875, 0.4844207763671875, 0.0340118408203125, - 0.34405517578125, 0.268463134765625, 0.3023834228515625, - 0.3394317626953125, 0.329681396484375, 0.78900146484375, - 0.2173614501953125, 0.427398681640625, 0.858612060546875, - 0.373779296875, 0.2003326416015625, 0.8298797607421875, 0.225341796875, - 0.1026763916015625, 0.0432586669921875, 0.27154541015625, - 0.675872802734375, 0.1661376953125, 0.5662994384765625, 0.427490234375, - 0.0351715087890625, 0.100830078125, 0.1180419921875, 0.602294921875, - 0.3837127685546875, 0.257965087890625, 0.829376220703125, - 0.0107269287109375, 0.1613922119140625, 0.34686279296875, 0.26171875, - 0.369964599609375, 0.165618896484375, 0.5911712646484375, - 0.3573760986328125, 0.0665435791015625, 0.5188751220703125, - 0.527984619140625, 0.2835845947265625, 0.2847442626953125, - 0.8283843994140625, 0.271942138671875, 0.25982666015625, - 0.5563507080078125, 0.8361663818359375, 0.5799713134765625, - 0.4197235107421875, 0.196044921875, 0.662261962890625, - 0.771942138671875, 0.76397705078125, 0.102996826171875, - 0.2652740478515625, 0.21343994140625, 0.231658935546875, - 0.3338775634765625, 0.9302978515625, 0.0863189697265625, 0.6025390625, - 0.546417236328125, 0.4278717041015625, 0.9099578857421875, - 0.7168426513671875, 0.31024169921875, 0.3853912353515625, - 0.918060302734375, 0.0492706298828125, 0.5783538818359375, - 0.142608642578125, 0.6991424560546875, 0.8785552978515625, - 0.2743682861328125, 0.171600341796875, 0.1395416259765625, - 0.4271697998046875, 0.530059814453125, 0.5297698974609375, - 0.5557403564453125, 0.656463623046875, 0.0860595703125, - 0.5265655517578125, 0.3856964111328125, 0.6260986328125, - 0.0137786865234375, 0.4738006591796875, 0.856658935546875, - 0.5947723388671875, 0.9693450927734375, 0.062774658203125, - 0.5472564697265625, 0.8143310546875, 0.66326904296875, 0.398193359375, - 0.86895751953125, 0.2354278564453125, 0.59912109375, 0.09515380859375, - 0.208038330078125, 0.8505706787109375, 0.0595703125, 0.6893310546875, - 0.438140869140625, 0.17950439453125, 0.1524810791015625, - 0.3839569091796875, 0.47796630859375, 0.8347320556640625, - 0.1988983154296875, 0.8720245361328125, 0.055206298828125, - 0.254547119140625, 0.8810272216796875, 0.1882476806640625, - 0.27252197265625, 0.2457733154296875, 0.78216552734375, - 0.699859619140625, 0.7032318115234375, 0.7322845458984375, - 0.3082122802734375, 0.9539337158203125, 0.9834442138671875, - 0.5245513916015625, 0.602264404296875, 0.6580963134765625, - 0.0583038330078125, 0.6216278076171875, 0.4459075927734375, - 0.53277587890625, 0.1621551513671875, 0.3784637451171875, - 0.034454345703125, 0.7596588134765625, 0.450347900390625, - 0.1038055419921875, 0.3078765869140625, 0.49017333984375, - 0.852203369140625, 0.8994598388671875, 0.619720458984375, 0.4658203125, - 0.856109619140625, 0.8899688720703125, 0.764556884765625, - 0.808380126953125, 0.6290130615234375, 0.5457611083984375, - 0.4491119384765625, 0.4601593017578125, 0.2077178955078125, - 0.0634002685546875, 0.5862884521484375, 0.782012939453125, - 0.7647705078125, 0.1877288818359375, 0.7302398681640625, - 0.438934326171875, 0.97723388671875, 0.8349761962890625, - 0.90008544921875, 0.9697265625, 0.7010345458984375, 0.2094268798828125, - 0.9249420166015625, 0.833160400390625, 0.95782470703125, - 0.1824951171875, 0.219696044921875, 0.9176177978515625, - 0.262969970703125, 0.8309173583984375, 0.3172149658203125, - 0.45758056640625, 0.5995025634765625, 0.3603363037109375, - 0.4866485595703125, 0.2541046142578125, 0.859588623046875, - 0.927703857421875, 0.3049468994140625, 0.44830322265625, - 0.7162933349609375, 0.8076171875, 0.2528076171875, 0.166961669921875, - 0.7381744384765625, 0.55438232421875, 0.4388885498046875, - 0.0437164306640625, 0.7169036865234375, 0.6748199462890625, - 0.7281951904296875, 0.181976318359375, 0.41070556640625, - 0.79461669921875, 0.1415557861328125, 0.1442108154296875, - 0.2212066650390625, 0.6470184326171875, 0.739501953125, - 0.90350341796875, 0.1323699951171875, 0.544219970703125, - 0.4238433837890625, 0.7406158447265625, 0.3527679443359375, - 0.0648651123046875, 0.3457489013671875, 0.3126373291015625, - 0.4053497314453125, 0.5303802490234375, 0.0541534423828125, - 0.21258544921875, 0.372406005859375, 0.0923614501953125, - 0.732757568359375, 0.6821441650390625, 0.86492919921875, - 0.5272064208984375, 0.7464599609375, 0.507110595703125, - 0.849151611328125, 0.551239013671875, 0.211517333984375, - 0.186798095703125, 0.29296875, 0.485565185546875, 0.362548828125, - 0.491455078125, 0.595367431640625, 0.1659088134765625, - 0.9876556396484375, 0.0640106201171875, 0.6304779052734375, - 0.5975189208984375, 0.7718353271484375, 0.3544769287109375, - 0.659881591796875, 0.6836395263671875, 0.8322906494140625, - 0.565460205078125, 0.0675506591796875, 0.083160400390625, 0.04345703125, - 0.079254150390625, 0.898193359375, 0.4541473388671875, - 0.1812896728515625, 0.260223388671875, 0.9807281494140625, - 0.23931884765625, 0.053680419921875, 0.0602264404296875, - 0.0078277587890625, 0.8760528564453125, 0.02618408203125, - 0.732696533203125, 0.487884521484375, 0.718658447265625, - 0.2895965576171875, 0.1416015625, 0.47528076171875, 0.90521240234375, - 0.2985382080078125, 0.99365234375, 0.44989013671875, 0.5183563232421875, - 0.07537841796875, 0.359344482421875, 0.9041748046875, 0.334869384765625, - 0.1899871826171875, 0.1136322021484375, 0.9631805419921875, - 0.3952178955078125, 0.360015869140625, 0.02886962890625, - 0.27215576171875, 0.3990631103515625, 0.0423736572265625, - 0.87701416015625, 0.7149658203125, 0.23980712890625, 0.478515625, - 0.6696014404296875, 0.6952972412109375, 0.48406982421875, - 0.407440185546875, 0.15606689453125, 0.394378662109375, - 0.8818511962890625, 0.999267578125, 0.03924560546875, 0.466033935546875, - 0.0727081298828125, 0.9857330322265625, 0.6671142578125, - 0.9551544189453125, 0.5094146728515625, 0.036865234375, - 0.491546630859375, 0.22930908203125, 0.7217864990234375, - 0.738983154296875, 0.69769287109375, 0.646697998046875, - 0.55303955078125, 0.6698150634765625, 0.06390380859375, - 0.5392303466796875, 0.3778839111328125, 0.20941162109375, - 0.196868896484375, 0.6901702880859375, 0.864898681640625, - 0.7040557861328125, 0.578948974609375, 0.0479888916015625, - 0.305633544921875, 0.6448516845703125, 0.0766448974609375, - 0.897430419921875, 0.502288818359375, 0.441192626953125, - 0.994781494140625, 0.98681640625, 0.2120361328125, 0.6696929931640625, - 0.2288818359375, 0.47479248046875, 0.2639312744140625, - 0.3439178466796875, 0.520416259765625, 0.4303131103515625, - 0.977294921875, 0.9215240478515625, 0.0984954833984375, - 0.604766845703125, 0.1847076416015625, 0.4589691162109375, - 0.5359039306640625, 0.546905517578125, 0.101806640625, - 0.2319183349609375, 0.60223388671875, 0.11627197265625, - 0.360015869140625, 0.9907989501953125, 0.961456298828125, - 0.3221282958984375, 0.03131103515625, 0.7423858642578125, - 0.32623291015625, 0.57415771484375, 0.77880859375, 0.536468505859375, - 0.3306427001953125, 0.05670166015625, 0.628082275390625, - 0.468109130859375, 0.78271484375, 0.1248779296875, 0.0344085693359375, - 0.5305023193359375, 0.3783111572265625, 0.143768310546875, 0.6943359375, - 0.6178436279296875, 0.927642822265625, 0.5633697509765625, - 0.237640380859375, 0.411376953125, 0.006011962890625, 0.51214599609375, - 0.3636016845703125, 0.44976806640625, 0.881103515625, - 0.4811553955078125, 0.9743499755859375, 0.39111328125, 0.55517578125, - 0.6204986572265625, 0.4308929443359375, 0.429168701171875, - 0.230133056640625, 0.2978668212890625, 0.364654541015625, - 0.926361083984375, 0.5478057861328125, 0.457061767578125, - 0.1773529052734375, 0.0298919677734375, 0.7035675048828125, - 0.1978759765625, 0.6124725341796875, 0.3769683837890625, - 0.00189208984375, 0.06524658203125, 0.775390625, 0.486358642578125, - 0.8031158447265625, 0.9067840576171875, 0.2856292724609375, - 0.171173095703125, 0.2223358154296875, 0.994537353515625, - 0.692962646484375, 0.1785125732421875, 0.1817626953125, - 0.735687255859375, 0.9361572265625, 0.452667236328125, - 0.744415283203125, 0.1506500244140625, 0.16998291015625, - 0.13616943359375, 0.6246490478515625, 0.748748779296875, - 0.831146240234375, 0.700286865234375, 0.36834716796875, - 0.0879058837890625, 0.581512451171875, 0.1976776123046875, 0.6611328125, - 0.1362152099609375, 0.9483184814453125, 0.045196533203125, - 0.7581939697265625, 0.1154022216796875, 0.4029541015625, - 0.4486846923828125, 0.702911376953125, 0.0875091552734375, - 0.4698333740234375, 0.232696533203125, 0.88134765625, - 0.3783416748046875, 0.261993408203125, 0.1058349609375, - 0.760284423828125, 0.65093994140625, 0.3778839111328125, - 0.1990203857421875, 0.6470184326171875, 0.0929107666015625, - 0.053558349609375, 0.11083984375, 0.4900665283203125, - 0.3330535888671875, 0.5303192138671875, 0.0748138427734375, - 0.2407073974609375, 0.886993408203125, 0.4235382080078125, - 0.560821533203125, 0.0536956787109375, 0.6364898681640625, - 0.8459014892578125, 0.18109130859375, 0.052978515625, 0.48504638671875, - 0.3537750244140625, 0.40484619140625, 0.4381103515625, - 0.4926910400390625, 0.6629791259765625, 0.4492340087890625, - 0.7128448486328125, 0.5294952392578125, 0.362030029296875, - 0.5565032958984375, 0.7471771240234375, 0.024261474609375, - 0.179779052734375, 0.6603546142578125, 0.7776031494140625, - 0.84686279296875, 0.4450531005859375, 0.2492828369140625, - 0.1357269287109375, 0.9415130615234375, 0.759429931640625, - 0.730377197265625, 0.47100830078125, 0.4153289794921875, - 0.2887115478515625, 0.76007080078125, 0.0818328857421875, - 0.8325042724609375, 0.535614013671875, 0.9447174072265625, - 0.937530517578125, 0.869293212890625, 0.020660400390625, - 0.170684814453125, 0.6901702880859375, 0.63677978515625, - 0.455169677734375, 0.5263671875, 0.1176300048828125, 0.0203094482421875, - 0.3978118896484375, 0.260955810546875, 0.1012115478515625, - 0.6148223876953125, 0.210540771484375, 0.0181427001953125, 0.7548828125, - 0.4756317138671875, 0.4764556884765625, 0.162384033203125, - 0.3285064697265625, 0.996124267578125, 0.8094024658203125, - 0.0610809326171875, 0.3229827880859375, 0.251739501953125, - 0.4163818359375, 0.661895751953125, 0.77215576171875, 0.5419921875, - 0.5846405029296875, 0.9033050537109375, 0.5002899169921875, - 0.7871246337890625, 0.04388427734375, 0.3857879638671875, - 0.728424072265625, 0.098846435546875, 0.634429931640625, - 0.0111083984375, 0.3796844482421875, 0.67681884765625, 0.42230224609375, - 0.5244598388671875, 0.7185516357421875, 0.8861541748046875, - 0.465545654296875, 0.2782135009765625, 0.0324249267578125, - 0.486541748046875, 0.0612335205078125, 0.222625732421875, - 0.50506591796875, 0.1947479248046875, 0.7604522705078125, - 0.7213592529296875, 0.1346435546875, 0.17828369140625, - 0.359161376953125, 0.5242767333984375, 0.640045166015625, - 0.5158233642578125, 0.5778961181640625, 0.7126007080078125, - 0.53729248046875, 0.1175079345703125, 0.1454620361328125, - 0.853851318359375, 0.8162384033203125, 0.5474700927734375, - 0.0971527099609375, 0.0450897216796875, 0.33575439453125, - 0.8800201416015625, 0.9364166259765625, 0.7611236572265625, - 0.529022216796875, 0.9490966796875, 0.4726715087890625, - 0.8255462646484375, 0.5573883056640625, 0.449127197265625, - 0.020355224609375, 0.6762847900390625, 0.4076995849609375, - 0.436431884765625, 0.4465789794921875, 0.7383575439453125, - 0.406585693359375, 0.4801788330078125, 0.3338775634765625, - 0.3994903564453125, 0.900146484375, 0.5405731201171875, - 0.100677490234375, 0.7921600341796875, 0.2776031494140625, - 0.3876190185546875, 0.4391326904296875, 0.009246826171875, - 0.16229248046875, 0.9693145751953125, 0.716949462890625, 0.3212890625, - 0.090789794921875, 0.26031494140625, 0.1056365966796875, - 0.6124114990234375, 0.389556884765625, 0.2488555908203125, - 0.4803466796875, 0.9726715087890625, 0.9497528076171875, - 0.363494873046875, 0.4149322509765625, 0.5377349853515625, - 0.2061004638671875, 0.64141845703125, 0.7261810302734375, - 0.6502532958984375, 0.1702423095703125, 0.8506927490234375, - 0.826385498046875, 0.824676513671875, 0.5982666015625, 0.93408203125, - 0.0554962158203125, 0.154388427734375, 0.0047760009765625, - 0.4302825927734375, 0.8137969970703125, 0.3287353515625, - 0.4571685791015625, 0.9421844482421875, 0.693878173828125, - 0.404449462890625, 0.510528564453125, 0.9600067138671875, - 0.17169189453125, 0.80126953125, 0.6347503662109375, 0.4276123046875, - 0.2321319580078125, 0.818084716796875, 0.76177978515625, - 0.97113037109375, 0.4807586669921875, 0.004425048828125, - 0.1825103759765625, 0.3958892822265625, 0.3397064208984375, - 0.4545135498046875, 0.9034423828125, 0.7794189453125, - 0.8116302490234375, 0.52496337890625, 0.6729583740234375, 0.4033203125, - 0.6671600341796875, 0.6008758544921875, 0.259063720703125, - 0.4614715576171875, 0.157073974609375, 0.3074798583984375, - 0.387847900390625, 0.521453857421875, 0.5284423828125, - 0.373809814453125, 0.6030120849609375, 0.315673828125, - 0.0164947509765625, 0.990875244140625, 0.6635284423828125, - 0.1638946533203125, 0.7847442626953125, 0.44134521484375, - 0.11480712890625, 0.765625, 0.753173828125, 0.5761871337890625, - 0.0615692138671875, 0.9442291259765625, 0.683837890625, - 0.741607666015625, 0.4671783447265625, 0.8544464111328125, - 0.1929779052734375, 0.52825927734375, 0.1019134521484375, - 0.1664276123046875, 0.3054962158203125, 0.0133514404296875, - 0.749786376953125, 0.7138214111328125, 0.3447265625, 0.576080322265625, - 0.6689300537109375, 0.7110137939453125, 0.7503509521484375, - 0.57891845703125, 0.905303955078125, 0.5186920166015625, - 0.02520751953125, 0.6768035888671875, 0.215118408203125, - 0.553192138671875, 0.2078399658203125, 0.3488006591796875, - 0.0254058837890625, 0.6115264892578125, 0.6848297119140625, - 0.5594635009765625, 0.1908111572265625, 0.970916748046875, 0.7734375, - 0.784454345703125, 0.6510009765625, 0.8550567626953125, - 0.52398681640625, 0.7255706787109375, 0.5324554443359375, - 0.0345306396484375, 0.3390655517578125, 0.0247039794921875, - 0.5691070556640625, 0.067474365234375, 0.88226318359375, - 0.7046051025390625, 0.8950653076171875, 0.8227386474609375, - 0.45513916015625, 0.8163299560546875, 0.3105621337890625, - 0.000274658203125, 0.2918243408203125, 0.6138153076171875, - 0.373138427734375, 0.60345458984375, 0.0464935302734375, - 0.47296142578125, 0.0037078857421875, 0.6370849609375, 0.661376953125, - 0.7501373291015625, 0.7741851806640625, 0.60791015625, - 0.632293701171875, 0.2610626220703125, 0.526641845703125, - 0.4162139892578125, 0.239654541015625, 0.817230224609375, - 0.9317474365234375, 0.757354736328125, 0.3890533447265625, - 0.648101806640625, 0.004180908203125, 0.162872314453125, - 0.59979248046875, 0.9009857177734375, 0.15313720703125, - 0.0229949951171875, 0.67279052734375, 0.69781494140625, 0.74755859375, - 0.8316650390625, 0.7020263671875, 0.142608642578125, 0.1158905029296875, - 0.3078155517578125, 0.665863037109375, 0.7369384765625, - 0.03948974609375, 0.1742706298828125, 0.198944091796875, - 0.313629150390625, 0.23565673828125, 0.369293212890625, 0.7989501953125, - 0.328857421875, 0.822052001953125, 0.1258392333984375, - 0.706268310546875, 0.016937255859375, 0.1863250732421875, - 0.8606719970703125, 0.87542724609375, 0.6098480224609375, - 0.3364715576171875, 0.086822509765625, 0.1376953125, 0.8083648681640625, - 0.511322021484375, 0.301361083984375, 0.3891754150390625, - 0.0028076171875, 0.6537017822265625, 0.86541748046875, - 0.057708740234375, 0.4026031494140625, 0.8085479736328125, - 0.94549560546875, 0.9980621337890625, 0.0442352294921875, - 0.0040435791015625, 0.2583160400390625, 0.249420166015625, - 0.345428466796875, 0.3900604248046875, 0.6561431884765625, - 0.6998291015625, 0.2077789306640625, 0.167510986328125, - 0.662933349609375, 0.7610931396484375, 0.90875244140625, - 0.835113525390625, 0.8166961669921875, 0.7610321044921875, - 0.8699951171875, 0.3380584716796875, 0.088958740234375, - 0.3442230224609375, 0.931243896484375, 0.5442352294921875, - 0.7446136474609375, 0.594329833984375, 0.409210205078125, - 0.4801483154296875, 0.7029266357421875, 0.19970703125, - 0.7533111572265625, 0.0017852783203125, 0.3406829833984375, - 0.24822998046875, 0.217529296875, 0.9312744140625, 0.41351318359375, - 0.8446502685546875, 0.545440673828125, 0.274200439453125, - 0.734649658203125, 0.3556671142578125, 0.4664306640625, - 0.772247314453125, 0.792236328125, 0.9195556640625, 0.579742431640625, - 0.976348876953125, 0.0247344970703125, 0.823028564453125, - 0.720947265625, 0.549163818359375, 0.7306976318359375, 0.93798828125, - 0.9797821044921875, 0.4206390380859375, 0.461883544921875, - 0.515045166015625, 0.0441741943359375, 0.8622894287109375, - 0.753173828125, 0.8866424560546875, 0.9129180908203125, - 0.4291839599609375, 0.85870361328125, 0.8748779296875, - 0.8835296630859375, 0.762176513671875, 0.098358154296875, - 0.8970184326171875, 0.8430023193359375, 0.72845458984375, - 0.466094970703125, 0.648040771484375, 0.043426513671875, - 0.81842041015625, 0.495758056640625, 0.6248779296875, 0.24896240234375, - 0.7976226806640625, 0.8307342529296875, 0.1907196044921875, - 0.213836669921875, 0.86370849609375, 0.89581298828125, - 0.138519287109375, 0.77789306640625, 0.15716552734375, - 0.7618865966796875, 0.87872314453125, 0.5944061279296875, - 0.5471038818359375, 0.6845855712890625, 0.3231201171875, - 0.7288055419921875, 0.988494873046875, 0.7991790771484375, - 0.24066162109375, 0.695037841796875, 0.545074462890625, - 0.0657806396484375, 0.761077880859375, 0.3404693603515625, - 0.2167205810546875, 0.769866943359375, 0.76373291015625, - 0.8704376220703125, 0.6705474853515625, 0.7246551513671875, - 0.946746826171875, 0.49761962890625, 0.574554443359375, 0.88427734375, - 0.77288818359375, 0.697723388671875, 0.224395751953125, - 0.5163726806640625, 0.1858673095703125, 0.585418701171875, - 0.9507293701171875, 0.7337646484375, 0.410919189453125, - 0.3873443603515625, 0.581634521484375, 0.3951263427734375, - 0.07977294921875, 0.1212310791015625, 0.2308349609375, - 0.3609466552734375, 0.4156341552734375, 0.225830078125, - 0.6526947021484375, 0.800872802734375, 0.14910888671875, - 0.5560302734375, 0.6432647705078125, 0.1674041748046875, - 0.0259552001953125, 0.7625885009765625, 0.395477294921875, - 0.34002685546875, 0.680084228515625, 0.979888916015625, - 0.8695220947265625, 0.0346221923828125, 0.6546783447265625, - 0.5778045654296875, 0.72509765625, 0.53851318359375, 0.7728424072265625, - 0.643280029296875, 0.0924072265625, 0.0522613525390625, - 0.1206207275390625, 0.2171630859375, 0.3077392578125, 0.162628173828125, - 0.8888702392578125, 0.441864013671875, 0.4239654541015625, - 0.8560638427734375, 0.9853668212890625, 0.6802215576171875, - 0.746551513671875, 0.81805419921875, 0.89300537109375, - 0.0660552978515625, 0.4945831298828125, 0.131561279296875, - 0.0596771240234375, 0.3794708251953125, 0.6444244384765625, - 0.0840606689453125, 0.4770355224609375, 0.12127685546875, - 0.7678680419921875, 0.98876953125, 0.3896331787109375, 0.1070556640625, - 0.71923828125, 0.2039947509765625, 0.308441162109375, 0.963836669921875, - 0.278961181640625, 0.9649658203125, 0.502593994140625, - 0.0993194580078125, 0.114593505859375, 0.615447998046875, - 0.538604736328125, 0.578155517578125, 0.2209930419921875, - 0.5724639892578125, 0.1941375732421875, 0.8674468994140625, - 0.3263092041015625, 0.1132965087890625, 0.1592864990234375, - 0.979949951171875, 0.4069671630859375, 0.7862091064453125, - 0.254791259765625, 0.3716583251953125, 0.5308685302734375, - 0.337615966796875, 0.4883270263671875, 0.4609527587890625, - 0.667816162109375, 0.1190032958984375, 0.3493804931640625, - 0.4885711669921875, 0.12103271484375, 0.2274017333984375, - 0.1006927490234375, 0.208648681640625, 0.1613311767578125, - 0.0051116943359375, 0.715057373046875, 0.48095703125, - 0.8625946044921875, 0.2027130126953125, 0.9563140869140625, - 0.9111480712890625, 0.35260009765625, 0.877532958984375, - 0.2991790771484375, 0.473846435546875, 0.17236328125, - 0.0297393798828125, 0.5388031005859375, 0.4768829345703125, - 0.5835418701171875, 0.413970947265625, 0.6923980712890625, - 0.83953857421875, 0.0714569091796875, 0.510986328125, - 0.3790130615234375, 0.4626312255859375, 0.0624237060546875, - 0.156097412109375, 0.707855224609375, 0.535125732421875, - 0.0606842041015625, 0.366363525390625, 0.646392822265625, - 0.4650421142578125, 0.22650146484375, 0.7067413330078125, - 0.0593414306640625, 0.9620513916015625, 0.109954833984375, - 0.78094482421875, 0.146820068359375, 0.718048095703125, - 0.074066162109375, 0.9871978759765625, 0.1488037109375, - 0.435455322265625, 0.396575927734375, 0.7415924072265625, - 0.1584320068359375, 0.447113037109375, 0.4168243408203125, - 0.0689544677734375, 0.0507659912109375, 0.679443359375, - 0.6432952880859375, 0.2221832275390625, 0.8954010009765625, - 0.3749237060546875, 0.639984130859375, 0.861541748046875, - 0.9205474853515625, 0.067962646484375, 0.2426605224609375, - 0.2803955078125, 0.773040771484375, 0.5398101806640625, - 0.94989013671875, 0.49847412109375, 0.9626617431640625, - 0.8867034912109375, 0.345458984375, 0.7171173095703125, - 0.7787017822265625, 0.2517242431640625, 0.1886444091796875, - 0.6517181396484375, 0.4407806396484375, 0.701446533203125, - 0.319610595703125, 0.6494903564453125, 0.279815673828125, - 0.0863800048828125, 0.111175537109375, 0.0748138427734375, - 0.536468505859375, 0.41510009765625, 0.8000640869140625, - 0.8226470947265625, 0.7289276123046875, 0.7716064453125, - 0.5541534423828125, 0.98516845703125, 0.227874755859375, - 0.0758514404296875, 0.6107635498046875, 0.6822509765625, - 0.1053314208984375, 0.501220703125, 0.8975982666015625, - 0.5571746826171875, 0.1853485107421875, 0.8576202392578125, - 0.6968536376953125, 0.4078216552734375, 0.148773193359375, - 0.7580413818359375, 0.6695098876953125, 0.3519134521484375, - 0.0202484130859375, 0.8249359130859375, 0.2064666748046875, - 0.87286376953125, 0.5602874755859375, 0.271453857421875, - 0.618438720703125, 0.25054931640625, 0.8289794921875, 0.11920166015625, - 0.134368896484375, 0.2762908935546875, 0.3596954345703125, - 0.8695831298828125, 0.001983642578125, 0.0015869140625, - 0.169097900390625, 0.30596923828125, 0.6414337158203125, - 0.10772705078125, 0.2693939208984375, 0.646484375, 0.8853912353515625, - 0.9625091552734375, 0.73541259765625, 0.052337646484375, - 0.099212646484375, 0.27496337890625, 0.1546783447265625, - 0.2176361083984375, 0.9871826171875, 0.85101318359375, - 0.435028076171875, 0.5880279541015625, 0.9263458251953125, - 0.3917999267578125, 0.6546478271484375, 0.1952667236328125, - 0.84222412109375, 0.8728485107421875, 0.0636138916015625, - 0.069091796875, 0.4897308349609375, 0.671722412109375, - 0.789093017578125, 0.677734375, 0.4904632568359375, 0.3547210693359375, - 0.7372894287109375, 0.620941162109375, 0.9244842529296875, - 0.4923553466796875, 0.7847137451171875, 0.4363250732421875, - 0.09759521484375, 0.2206268310546875, 0.9333343505859375, - 0.2045440673828125, 0.56903076171875, 0.55364990234375, 0.203857421875, - 0.4382781982421875, 0.63067626953125, 0.11822509765625, - 0.5905303955078125, 0.729461669921875, 0.3449554443359375, - 0.040069580078125, 0.3032073974609375, 0.5981903076171875, - 0.1655731201171875, 0.787445068359375, 0.1644439697265625, - 0.2247161865234375, 0.6373443603515625, 0.8224334716796875, - 0.5196990966796875, 0.416717529296875, 0.7950592041015625, - 0.5556793212890625, 0.310333251953125, 0.62042236328125, - 0.603790283203125, 0.7475738525390625, 0.24346923828125, - 0.4889373779296875, 0.508575439453125, 0.78680419921875, - 0.10430908203125, 0.7743377685546875, 0.428466796875, - 0.6005706787109375, 0.9012451171875, 0.2891693115234375, - 0.6246337890625, 0.38043212890625, 0.1181182861328125, 0.5009765625, - 0.8211822509765625, 0.667327880859375, 0.446136474609375, - 0.6568450927734375, 0.0024261474609375, 0.419097900390625, - 0.4241485595703125, 0.8844451904296875, 0.7527618408203125, - 0.14898681640625, 0.1714935302734375, 0.675201416015625, - 0.105316162109375, 0.28619384765625, 0.6446533203125, 0.6658935546875, - 0.3400421142578125, 0.7771148681640625, 0.99249267578125, - 0.595458984375, 0.1779022216796875, 0.3114166259765625, - 0.5253143310546875, 0.5601806640625, 0.7392425537109375, - 0.8983154296875, 0.7893218994140625, 0.2139892578125, 0.434600830078125, - 0.1279296875, 0.647857666015625, 0.595733642578125, 0.96954345703125, - 0.6760711669921875, 0.1710968017578125, 0.86279296875, 0.50885009765625, - 0.868560791015625, 0.925140380859375, 0.7281341552734375, - 0.2843170166015625, 0.62298583984375, 0.5931549072265625, - 0.7561492919921875, 0.9056396484375, 0.887847900390625, - 0.7068939208984375, 0.2929840087890625, 0.8139190673828125, - 0.93255615234375, 0.85302734375, 0.1205902099609375, 0.7857818603515625, - 0.0773468017578125, 0.3424224853515625, 0.395538330078125, - 0.9017486572265625, 0.4308013916015625, 0.5892791748046875, - 0.5950927734375, 0.7357330322265625, 0.0008544921875, - 0.2389984130859375, 0.8306732177734375, 0.65582275390625, - 0.0463409423828125, 0.6020965576171875, 0.3755340576171875, - 0.7417449951171875, 0.2534332275390625, 0.110992431640625, - 0.8446044921875, 0.483642578125, 0.001617431640625, 0.3271636962890625, - 0.858795166015625, 0.6450347900390625, 0.011474609375, - 0.8470306396484375, 0.57049560546875, 0.2595672607421875, 0.88427734375, - 0.69110107421875, 0.9238739013671875, 0.425201416015625, - 0.1910400390625, 0.3827056884765625, 0.3717193603515625, - 0.2372894287109375, 0.874237060546875, 0.981536865234375, - 0.334564208984375, 0.2640228271484375, 0.0446014404296875, - 0.618865966796875, 0.229034423828125, 0.1154022216796875, - 0.845611572265625, 0.0585174560546875, 0.312896728515625, - 0.6900177001953125, 0.950531005859375, 0.7427520751953125, - 0.4104766845703125, 0.7421722412109375, 0.5058441162109375, - 0.4348907470703125, 0.41644287109375, 0.462890625, 0.6422576904296875, - 0.749237060546875, 0.3223114013671875, 0.81243896484375, - 0.247955322265625, 0.7005157470703125, 0.8583831787109375, - 0.912506103515625, 0.311065673828125, 0.3952178955078125, - 0.0421905517578125, 0.7722320556640625, 0.8677825927734375, - 0.4624786376953125, 0.4979095458984375, 0.243194580078125, - 0.099945068359375, 0.617401123046875, 0.1756744384765625, - 0.909576416015625, 0.793548583984375, 0.9523162841796875, - 0.5218505859375, 0.1288604736328125, 0.2203826904296875, - 0.2165985107421875, 0.6392822265625, 0.9673004150390625, - 0.9298858642578125, 0.7065277099609375, 0.899658203125, - 0.023773193359375, 0.02838134765625, 0.42938232421875, - 0.515777587890625, 0.2249755859375, 0.4282684326171875, 0.9991455078125, - 0.4284210205078125, 0.13262939453125, 0.09942626953125, - 0.1401519775390625, 0.068817138671875, 0.9495697021484375, - 0.7811431884765625, 0.206695556640625, 0.1430206298828125, - 0.578765869140625, 0.59478759765625, 0.74884033203125, 0.7103271484375, - 0.4961700439453125, 0.0237884521484375, 0.3724365234375, - 0.4730072021484375, 0.9128875732421875, 0.2907562255859375, - 0.5323638916015625, 0.45489501953125, 0.7906036376953125, - 0.066131591796875, 0.164154052734375, 0.425872802734375, - 0.2626190185546875, 0.9364013671875, 0.03338623046875, - 0.5716094970703125, 0.6749420166015625, 0.4241180419921875, - 0.4815216064453125, 0.09320068359375, 0.601104736328125, - 0.09149169921875, 0.9856719970703125, 0.8465423583984375, - 0.9642333984375, 0.5209503173828125, 0.1415252685546875, 0.253662109375, - 0.9326019287109375, 0.7827606201171875, 0.6214599609375, - 0.7194061279296875, 0.66741943359375, 0.7125244140625, - 0.1638031005859375, 0.4906463623046875, 0.8955230712890625, - 0.245849609375, 0.909637451171875, 0.3956756591796875, - 0.362274169921875, 0.31427001953125, 0.0973358154296875, - 0.452178955078125, 0.4387054443359375, 0.3232574462890625, - 0.6016693115234375, 0.21087646484375, 0.8441925048828125, - 0.3564910888671875, 0.416595458984375, 0.9300689697265625, - 0.542449951171875, 0.920806884765625, 0.435882568359375, - 0.5107574462890625, 0.3885955810546875, 0.5894622802734375, - 0.80035400390625, 0.90667724609375, 0.693359375, 0.6053924560546875, - 0.4991455078125, 0.4752349853515625, 0.422149658203125, - 0.1570892333984375, 0.2078094482421875, 0.36767578125, 0.83319091796875, - 0.1202850341796875, 0.7963104248046875, 0.6135406494140625, - 0.0832977294921875, 0.00836181640625, 0.48394775390625, - 0.1491241455078125, 0.385833740234375, 0.40289306640625, - 0.980316162109375, 0.6702728271484375, 0.4492340087890625, - 0.8473968505859375, 0.18182373046875, 0.7779083251953125, - 0.4480133056640625, 0.26080322265625, 0.2837677001953125, - 0.5836639404296875, 0.5735321044921875, 0.800689697265625, - 0.0518035888671875, 0.6159210205078125, 0.3892822265625, - 0.296173095703125, 0.0088348388671875, 0.91851806640625, - 0.081634521484375, 0.8549041748046875, 0.522125244140625, - 0.7271728515625, 0.3446044921875, 0.126434326171875, 0.2672119140625, - 0.0245819091796875, 0.1143035888671875, 0.375885009765625, - 0.236846923828125, 0.4577789306640625, 0.5467071533203125, - 0.9769287109375, 0.78790283203125, 0.751068115234375, - 0.4465179443359375, 0.99957275390625, 0.7584686279296875, - 0.0969696044921875, 0.874969482421875, 0.0542755126953125, - 0.042449951171875, 0.5421905517578125, 0.78094482421875, - 0.213531494140625, 0.3563995361328125, 0.36181640625, 0.9453125, - 0.4178009033203125, 0.5959320068359375, 0.75921630859375, - 0.616241455078125, 0.3289337158203125, 0.0019683837890625, - 0.6033782958984375, 0.2946929931640625, 0.40509033203125, - 0.96722412109375, 0.5434112548828125, 0.563446044921875, - 0.736480712890625, 0.2512664794921875, 0.247100830078125, - 0.8923492431640625, 0.6851806640625, 0.385772705078125, - 0.86395263671875, 0.2659759521484375, 0.880706787109375, - 0.669647216796875, 0.105712890625, 0.03863525390625, 0.1323089599609375, - 0.3103790283203125, 0.8513031005859375, 0.264862060546875, - 0.284088134765625, 0.3122406005859375, 0.068084716796875, - 0.1085052490234375, 0.835540771484375, 0.691650390625, 0.7701416015625, - 0.7561492919921875, 0.55218505859375, 0.1999053955078125, - 0.7303009033203125, 0.7000274658203125, 0.648284912109375, - 0.4468994140625, 0.7745819091796875, 0.854827880859375, - 0.549346923828125, 0.366424560546875, 0.72515869140625, - 0.491546630859375, 0.325714111328125, 0.2205963134765625, - 0.2910614013671875, 0.3465118408203125, 0.6089324951171875, - 0.11505126953125, 0.1086273193359375, 0.2664642333984375, - 0.3029327392578125, 0.3406524658203125, 0.09881591796875, - 0.928863525390625, 0.66827392578125, 0.28668212890625, - 0.387115478515625, 0.1618499755859375, 0.9908905029296875, - 0.460357666015625, 0.696014404296875, 0.4863128662109375, - 0.565704345703125, 0.5299072265625, 0.7641754150390625, - 0.0295257568359375, 0.146453857421875, 0.05047607421875, - 0.035308837890625, 0.7528839111328125, 0.301239013671875, - 0.774627685546875, 0.4645233154296875, 0.8412933349609375, - 0.179443359375, 0.074127197265625, 0.1443939208984375, - 0.5782012939453125, 0.3433685302734375, 0.8387451171875, - 0.947845458984375, 0.3970489501953125, 0.333892822265625, - 0.1276702880859375, 0.22088623046875, 0.28997802734375, - 0.2732391357421875, 0.506591796875, 0.8817596435546875, - 0.940093994140625, 0.466522216796875, 0.1468353271484375, - 0.259033203125, 0.3280792236328125, 0.2499847412109375, 0.8160400390625, - 0.922393798828125, 0.2690582275390625, 0.182952880859375, - 0.319122314453125, 0.147705078125, 0.572021484375, 0.9610595703125, - 0.4470062255859375, 0.9130096435546875, 0.9008331298828125, - 0.6412811279296875, 0.2591094970703125, 0.0719757080078125, - 0.2719879150390625, 0.83453369140625, 0.217620849609375, - 0.9272308349609375, 0.032440185546875, 0.0998382568359375, - 0.9006500244140625, 0.7866363525390625, 0.4753570556640625, - 0.330047607421875, 0.236907958984375, 0.4347381591796875, - 0.61700439453125, 0.420623779296875, 0.125030517578125, - 0.04168701171875, 0.69140625, 0.9500274658203125, 0.096710205078125, - 0.3200836181640625, 0.1334991455078125, 0.1436309814453125, - 0.7064056396484375, 0.6822509765625, 0.097686767578125, - 0.5785064697265625, 0.5814208984375, 0.0108795166015625, - 0.4960174560546875, 0.873321533203125, 0.7001800537109375, - 0.6784515380859375, 0.9990234375, 0.58038330078125, 0.2147979736328125, - 0.6244354248046875, 0.3790740966796875, 0.7618408203125, - 0.56634521484375, 0.4568939208984375, 0.7003936767578125, - 0.80242919921875, 0.173919677734375, 0.1608123779296875, - 0.00714111328125, 0.02032470703125, 0.1579437255859375, - 0.897918701171875, 0.1512298583984375, 0.2042083740234375, - 0.47869873046875, 0.055328369140625, 0.4183197021484375, - 0.0080108642578125, 0.989044189453125, 0.2115478515625, - 0.6115875244140625, 0.8460845947265625, 0.36602783203125, - 0.5112762451171875, 0.5953369140625, 0.4358673095703125, - 0.5803985595703125, 0.647491455078125, 0.8914337158203125, - 0.8961639404296875, 0.1748199462890625, 0.520721435546875, - 0.7657470703125, 0.4348297119140625, 0.8404693603515625, - 0.33612060546875, 0.8544769287109375, 0.52972412109375, - 0.5207977294921875, 0.5374298095703125, 0.2684783935546875, - 0.4940948486328125, 0.929351806640625, 0.3567047119140625, - 0.7470245361328125, 0.441986083984375, 0.782562255859375, - 0.7368316650390625, 0.3748779296875, 0.7435760498046875, - 0.0883026123046875, 0.1161956787109375, 0.037109375, 0.9599609375, - 0.54205322265625, 0.41162109375, 0.981170654296875, 0.29364013671875, - 0.5311279296875, 0.3350372314453125, 0.1759185791015625, 0.611083984375, - 0.986572265625, 0.59185791015625, 0.3253936767578125, - 0.8204193115234375, 0.2941131591796875, 0.991790771484375, - 0.172210693359375, 0.0214691162109375, 0.87322998046875, - 0.0287017822265625, 0.943359375, 0.2896575927734375, 0.034820556640625, - 0.4053192138671875, 0.3057098388671875, 0.7095184326171875, - 0.75958251953125, 0.19415283203125, 0.1099853515625, 0.4307708740234375, - 0.3037567138671875, 0.1841888427734375, 0.3946990966796875, - 0.7014312744140625, 0.0691375732421875, 0.0698699951171875, - 0.7239990234375, 0.511322021484375, 0.4151611328125, 0.0519561767578125, - 0.42742919921875, 0.0731048583984375, 0.8461151123046875, - 0.2014923095703125, 0.704010009765625, 0.8171539306640625, - 0.48779296875, 0.6269378662109375, 0.3292388916015625, - 0.300079345703125, 0.3023834228515625, 0.4343719482421875, - 0.961700439453125, 0.37322998046875, 0.91253662109375, 0.97076416015625, - 0.8564910888671875, 0.990997314453125, 0.49835205078125, 0.50244140625, - 0.8498992919921875, 0.866363525390625, 0.072601318359375, - 0.37420654296875, 0.87554931640625, 0.6242218017578125, - 0.5609283447265625, 0.7714080810546875, 0.4319305419921875, - 0.90289306640625, 0.219268798828125, 0.976165771484375, - 0.3254547119140625, 0.341339111328125, 0.213775634765625, - 0.764434814453125, 0.1312408447265625, 0.689788818359375, - 0.256072998046875, 0.1092529296875, 0.138519287109375, - 0.1041717529296875, 0.9860076904296875, 0.3819580078125, - 0.936309814453125, 0.5522918701171875, 0.7285919189453125, - 0.5885162353515625, 0.321685791015625, 0.5808868408203125, - 0.3410491943359375, 0.72265625, 0.08477783203125, 0.43310546875, - 0.3443450927734375, 0.23583984375, 0.9147491455078125, 0.23175048828125, - 0.2218170166015625, 0.4537200927734375, 0.659027099609375, - 0.1162872314453125, 0.08929443359375, 0.536529541015625, - 0.3845977783203125, 0.711700439453125, 0.7475738525390625, - 0.741607666015625, 0.5528411865234375, 0.5301361083984375, - 0.1666412353515625, 0.3141021728515625, 0.0069122314453125, - 0.09234619140625, 0.509490966796875, 0.8636932373046875, - 0.702117919921875, 0.4253387451171875, 0.834075927734375, - 0.4950103759765625, 0.1165924072265625, 0.7060546875, 0.55633544921875, - 0.8553924560546875, 0.248504638671875, 0.01629638671875, - 0.40423583984375, 0.5359039306640625, 0.7224578857421875, - 0.4936676025390625, 0.9309234619140625, 0.8642730712890625, - 0.2328643798828125, 0.3402252197265625, 0.912322998046875, - 0.53375244140625, 0.5851287841796875, 0.9929962158203125, - 0.3119354248046875, 0.477874755859375, 0.178070068359375, - 0.53582763671875, 0.95526123046875, 0.5419769287109375, - 0.59307861328125, 0.2895050048828125, 0.1821136474609375, - 0.6121368408203125, 0.6582489013671875, 0.004669189453125, - 0.144744873046875, 0.920196533203125, 0.2402496337890625, - 0.3155059814453125, 0.125732421875, 0.1375732421875, 0.554656982421875, - 0.2504119873046875, 0.7640533447265625, 0.9997406005859375, - 0.2421722412109375, 0.28436279296875, 0.978485107421875, - 0.4460906982421875, 0.5933837890625, 0.0422821044921875, - 0.8347930908203125, 0.961822509765625, 0.9541015625, 0.8859100341796875, - 0.908294677734375, 0.8232269287109375, 0.4922943115234375, - 0.1518707275390625, 0.7038726806640625, 0.622650146484375, - 0.5234527587890625, 0.47662353515625, 0.33782958984375, - 0.29010009765625, 0.9497833251953125, 0.5480499267578125, - 0.412322998046875, 0.5880889892578125, 0.5356597900390625, - 0.89263916015625, 0.2169036865234375, 0.8493804931640625, - 0.098907470703125, 0.3748931884765625, 0.7379608154296875, - 0.7654876708984375, 0.7560272216796875, 0.5397491455078125, - 0.5964508056640625, 0.077880859375, 0.861236572265625, 0.91973876953125, - 0.22589111328125, 0.522796630859375, 0.1259918212890625, - 0.1782989501953125, 0.781707763671875, 0.85443115234375, - 0.0340423583984375, 0.568817138671875, 0.01507568359375, - 0.4457244873046875, 0.6354522705078125, 0.09954833984375, - 0.980438232421875, 0.684722900390625, 0.294097900390625, - 0.929840087890625, 0.7847900390625, 0.28204345703125, - 0.9788055419921875, 0.0771026611328125, 0.489532470703125, - 0.1546478271484375, 0.1274871826171875, 0.35406494140625, - 0.973907470703125, 0.761871337890625, 0.190826416015625, - 0.9295501708984375, 0.5193634033203125, 0.7113494873046875, - 0.4217529296875, 0.7461395263671875, 0.8961944580078125, - 0.9428558349609375, 0.511810302734375, 0.5090484619140625, - 0.3534088134765625, 0.719482421875, 0.39263916015625, - 0.2481536865234375, 0.9740142822265625, 0.6167144775390625, - 0.150634765625, 0.821014404296875, 0.239227294921875, - 0.5735626220703125, 0.6384429931640625, 0.250518798828125, - 0.6885833740234375, 0.79046630859375, 0.84088134765625, 0.4544677734375, - 0.165771484375, 0.150634765625, 0.7819061279296875, 0.35125732421875, - 0.8332672119140625, 0.1734161376953125, 0.4541168212890625, - 0.4344940185546875, 0.894622802734375, 0.531219482421875, - 0.329071044921875, 0.1126861572265625, 0.4739837646484375, - 0.2206573486328125, 0.6177520751953125, 0.7700042724609375, - 0.675933837890625, 0.7884521484375, 0.544830322265625, - 0.7876434326171875, 0.2138824462890625, 0.374176025390625, - 0.3954620361328125, 0.601226806640625, 0.8729095458984375, - 0.4431610107421875, 0.4549102783203125, 0.4444580078125, - 0.905914306640625, 0.9966278076171875, 0.085723876953125, - 0.326416015625, 0.963714599609375, 0.7843475341796875, - 0.401641845703125, 0.2507781982421875, 0.728729248046875, - 0.5027923583984375, 0.392364501953125, 0.9624481201171875, - 0.1502838134765625, 0.446441650390625, 0.5355224609375, - 0.5062713623046875, 0.121246337890625, 0.4532470703125, - 0.1715240478515625, 0.0425262451171875, 0.0564422607421875, - 0.5186004638671875, 0.48577880859375, 0.5283966064453125, - 0.94122314453125, 0.271881103515625, 0.3249359130859375, - 0.8257598876953125, 0.9268341064453125, 0.1324005126953125, - 0.2603759765625, 0.1339569091796875, 0.053131103515625, - 0.4233245849609375, 0.93597412109375, 0.3775787353515625, - 0.8575897216796875, 0.1900482177734375, 0.443634033203125, - 0.0148468017578125, 0.1375732421875, 0.857818603515625, - 0.563873291015625, 0.2198638916015625, 0.0204925537109375, - 0.0056304931640625, 0.711944580078125, 0.13153076171875, - 0.465667724609375, 0.0040435791015625, 0.8528900146484375, - 0.6414642333984375, 0.3683013916015625, 0.785491943359375, - 0.7568817138671875, 0.7794342041015625, 0.6522369384765625, - 0.1434478759765625, 0.006317138671875, 0.862640380859375, - 0.255096435546875, 0.9965972900390625, 0.4954986572265625, - 0.2033843994140625, 0.6962738037109375, 0.237152099609375, - 0.0674285888671875, 0.3621673583984375, 0.6200408935546875, - 0.073455810546875, 0.52923583984375, 0.2234954833984375, - 0.762969970703125, 0.546112060546875, 0.2735748291015625, - 0.909088134765625, 0.3455810546875, 0.208984375, 0.8369140625, - 0.9272613525390625, 0.1658782958984375, 0.172088623046875, - 0.5111541748046875, 0.08514404296875, 0.66766357421875, - 0.365142822265625, 0.3472137451171875, 0.140228271484375, - 0.7596282958984375, 0.0433197021484375, 0.9023895263671875, - 0.0130615234375, 0.3970489501953125, 0.1422882080078125, - 0.3774871826171875, 0.439697265625, 0.385894775390625, 0.86138916015625, - 0.012237548828125, 0.7183380126953125, 0.2358245849609375, - 0.0272674560546875, 0.656494140625, 0.74310302734375, 0.071624755859375, - 0.018890380859375, 0.2291107177734375, 0.6700439453125, - 0.5190887451171875, 0.6885223388671875, 0.7290802001953125, - 0.300628662109375, 0.498077392578125, 0.4906005859375, - 0.3394927978515625, 0.780609130859375, 0.3970184326171875, - 0.5296783447265625, 0.71234130859375, 0.035308837890625, - 0.716339111328125, 0.157867431640625, 0.939971923828125, - 0.8138885498046875, 0.0743255615234375, 0.3389129638671875, - 0.344512939453125, 0.104034423828125, 0.5532684326171875, - 0.68646240234375, 0.700042724609375, 0.3868408203125, - 0.6887359619140625, 0.2800140380859375, 0.8406219482421875, - 0.147613525390625, 0.4313507080078125, 0.752410888671875, - 0.6314849853515625, 0.63720703125, 0.44000244140625, 0.078155517578125, - 0.8767547607421875, 0.7789306640625, 0.0102081298828125, - 0.1756439208984375, 0.5064849853515625, 0.486175537109375, - 0.5452728271484375, 0.7972412109375, 0.8712310791015625, - 0.5704803466796875, 0.4538726806640625, 0.347747802734375, - 0.804931640625, 0.239776611328125, 0.150390625, 0.770263671875, - 0.88848876953125, 0.1241912841796875, 0.90740966796875, 0.8831787109375, - 0.3261566162109375, 0.8786773681640625, 0.9833221435546875, - 0.5416412353515625, 0.6060333251953125, 0.18634033203125, - 0.86053466796875, 0.6537933349609375, 0.649078369140625, - 0.310028076171875, 0.948272705078125, 0.14190673828125, - 0.90936279296875, 0.278656005859375, 0.1120758056640625, - 0.6403045654296875, 0.4410552978515625, 0.35400390625, - 0.3683013916015625, 0.769256591796875, 0.1135101318359375, - 0.3325042724609375, 0.3734130859375, 0.058441162109375, - 0.8326568603515625, 0.598388671875, 0.3296051025390625, - 0.5348968505859375, 0.152130126953125, 0.78887939453125, - 0.7537841796875, 0.32940673828125, 0.80316162109375, 0.2393341064453125, - 0.893096923828125, 0.667266845703125, 0.42327880859375, - 0.982269287109375, 0.04656982421875, 0.6900177001953125, - 0.6941680908203125, 0.724334716796875, 0.8000030517578125, - 0.595001220703125, 0.9929962158203125, 0.2186737060546875, - 0.6074981689453125, 0.004119873046875, 0.1019287109375, - 0.3160858154296875, 0.9849700927734375, 0.8841094970703125, - 0.8229827880859375, 0.640960693359375, 0.2612152099609375, - 0.818450927734375, 0.811126708984375, 0.3649749755859375, - 0.534698486328125, 0.7471466064453125, 0.23663330078125, - 0.0085906982421875, 0.1078338623046875, 0.3682708740234375, - 0.4724884033203125, 0.9496002197265625, 0.0125579833984375, - 0.2652740478515625, 0.28448486328125, 0.9187774658203125, - 0.9779815673828125, 0.506622314453125, 0.677520751953125, - 0.254608154296875, 0.9471893310546875, 0.568450927734375, - 0.4192962646484375, 0.6839752197265625, 0.314300537109375, - 0.858062744140625, 0.1143798828125, 0.075775146484375, - 0.699188232421875, 0.2438812255859375, 0.8201446533203125, - 0.305450439453125, 0.0299530029296875, 0.69793701171875, - 0.98138427734375, 0.6378173828125, 0.950286865234375, - 0.8555755615234375, 0.8738250732421875, 0.87152099609375, - 0.986541748046875, 0.8724365234375, 0.55487060546875, - 0.9904022216796875, 0.83929443359375, 0.7324066162109375, - 0.667633056640625, 0.891204833984375, 0.976593017578125, - 0.365142822265625, 0.298492431640625, 0.866485595703125, - 0.2950897216796875, 0.1549835205078125, 0.504791259765625, - 0.4676971435546875, 0.663970947265625, 0.7154388427734375, - 0.01654052734375, 0.8961944580078125, 0.9343719482421875, - 0.033172607421875, 0.5603179931640625, 0.716217041015625, - 0.0531158447265625, 0.6610260009765625, 0.244140625, 0.1473388671875, - 0.706817626953125, 0.4275970458984375, 0.7745513916015625, - 0.4844207763671875, 0.8365631103515625, 0.472686767578125, - 0.75225830078125, 0.29278564453125, 0.6100311279296875, - 0.3311309814453125, 0.135009765625, 0.7514495849609375, - 0.2376556396484375, 0.0234527587890625, 0.7969818115234375, - 0.4970703125, 0.2294158935546875, 0.5880584716796875, 0.948028564453125, - 0.501617431640625, 0.980010986328125, 0.8712158203125, 0.47662353515625, - 0.4872894287109375, 0.3879241943359375, 0.0290985107421875, - 0.308380126953125, 0.2764129638671875, 0.8462677001953125, - 0.820343017578125, 0.62249755859375, 0.305450439453125, - 0.6138763427734375, 0.4185028076171875, 0.8257293701171875, - 0.702362060546875, 0.40509033203125, 0.49859619140625, - 0.5289154052734375, 0.1580657958984375, 0.5796966552734375, - 0.1033477783203125, 0.8553314208984375, 0.62518310546875, 0.26220703125, - 0.776092529296875, 0.509124755859375, 0.86181640625, 0.2823028564453125, - 0.24700927734375, 0.7570037841796875, 0.134521484375, - 0.9672088623046875, 0.1428680419921875, 0.7181396484375, - 0.9554290771484375, 0.752166748046875, 0.1107025146484375, - 0.1842803955078125, 0.9171142578125, 0.80157470703125, 0.1484375, - 0.0661468505859375, 0.3213958740234375, 0.1608123779296875, - 0.4608001708984375, 0.68243408203125, 0.6389923095703125, - 0.0639190673828125, 0.7975006103515625, 0.9215240478515625, - 0.3648834228515625, 0.717864990234375, 0.9928741455078125, - 0.7432098388671875, 0.6644439697265625, 0.015106201171875, - 0.3524932861328125, 0.797454833984375, 0.4727935791015625, - 0.464019775390625, 0.1940155029296875, 0.706634521484375, - 0.1059417724609375, 0.82464599609375, 0.5066986083984375, - 0.169189453125, 0.80084228515625, 0.31060791015625, 0.921112060546875, - 0.6573944091796875, 0.1914520263671875, 0.4184417724609375, - 0.333526611328125, 0.581085205078125, 0.8971710205078125, - 0.885986328125, 0.7165679931640625, 0.76251220703125, - 0.8006439208984375, 0.313629150390625, 0.620086669921875, - 0.2895355224609375, 0.1208038330078125, 0.080810546875, - 0.448089599609375, 0.4791412353515625, 0.7193603515625, - 0.93731689453125, 0.079437255859375, 0.482574462890625, - 0.229949951171875, 0.561492919921875, 0.1693267822265625, - 0.9939422607421875, 0.6430511474609375, 0.77166748046875, - 0.7638092041015625, 0.877960205078125, 0.0132598876953125, - 0.1233673095703125, 0.8792266845703125, 0.2734222412109375, - 0.513763427734375, 0.7310791015625, 0.92242431640625, - 0.1865997314453125, 0.0289306640625, 0.6843719482421875, - 0.96087646484375, 0.825469970703125, 0.284393310546875, - 0.198822021484375, 0.044677734375, 0.282073974609375, - 0.6194610595703125, 0.4863739013671875, 0.1443939208984375, - 0.870513916015625, 0.9069366455078125, 0.1874542236328125, 0.7900390625, - 0.26361083984375, 0.325775146484375, 0.5126800537109375, - 0.7691802978515625, 0.308868408203125, 0.0203094482421875, - 0.78533935546875, 0.76385498046875, 0.5951690673828125, - 0.1970977783203125, 0.2602386474609375, 0.6026763916015625, - 0.536956787109375, 0.650970458984375, 0.2201080322265625, - 0.467437744140625, 0.4666290283203125, 0.3698272705078125, - 0.9637908935546875, 0.8856353759765625, 0.330963134765625, - 0.2003631591796875, 0.7622833251953125, 0.0662841796875, - 0.606781005859375, 0.25848388671875, 0.56414794921875, - 0.1113128662109375, 0.5708160400390625, 0.6365203857421875, - 0.4123077392578125, 0.1163330078125, 0.5753326416015625, - 0.1257476806640625, 0.5906524658203125, 0.9061737060546875, - 0.58221435546875, 0.5335693359375, 0.032318115234375, - 0.0648651123046875, 0.0873565673828125, 0.4893341064453125, - 0.84423828125, 0.60308837890625, 0.92724609375, 0.8438262939453125, - 0.0609130859375, 0.2989501953125, 0.6569061279296875, - 0.7080535888671875, 0.52392578125, 0.8276519775390625, - 0.4046173095703125, 0.787872314453125, 0.0373077392578125, - 0.9164581298828125, 0.3506317138671875, 0.2697296142578125, - 0.07696533203125, 0.8918304443359375, 0.6071624755859375, - 0.61517333984375, 0.6566925048828125, 0.839691162109375, - 0.3824310302734375, 0.7238311767578125, 0.179840087890625, - 0.06292724609375, 0.5612335205078125, 0.8306884765625, - 0.975738525390625, 0.825286865234375, 0.908721923828125, - 0.8523712158203125, 0.374542236328125, 0.7817840576171875, - 0.2952728271484375, 0.6567840576171875, 0.0661468505859375, - 0.0760345458984375, 0.1850738525390625, 0.0239105224609375, - 0.817352294921875, 0.417694091796875, 0.8206634521484375, - 0.552764892578125, 0.135162353515625, 0.2789306640625, 0.810546875, - 0.389129638671875, 0.2166748046875, 0.2818603515625, 0.1061859130859375, - 0.1071929931640625, 0.1785125732421875, 0.7821502685546875, - 0.9231414794921875, 0.9302520751953125, 0.862213134765625, - 0.9897613525390625, 0.242950439453125, 0.5309600830078125, - 0.8696441650390625, 0.419036865234375, 0.4911651611328125, - 0.6331329345703125, 0.5259246826171875, 0.4765625, 0.297454833984375, - 0.353729248046875, 0.8410797119140625, 0.31378173828125, - 0.95404052734375, 0.7805938720703125, 0.7291412353515625, - 0.339263916015625, 0.9640350341796875, 0.7733917236328125, - 0.910125732421875, 0.8555908203125, 0.0237579345703125, 0.210693359375, - 0.7132568359375, 0.2446441650390625, 0.4858245849609375, - 0.5548858642578125, 0.243988037109375, 0.2185516357421875, - 0.9048614501953125, 0.0843963623046875, 0.3451080322265625, - 0.579071044921875, 0.81317138671875, 0.61090087890625, - 0.7430572509765625, 0.3576507568359375, 0.0546722412109375, - 0.84503173828125, 0.6476898193359375, 0.5692138671875, - 0.2111053466796875, 0.495208740234375, 0.762420654296875, - 0.9967193603515625, 0.116546630859375, 0.1288299560546875, - 0.85516357421875, 0.8160858154296875, 0.2870025634765625, - 0.578399658203125, 0.0561065673828125, 0.100982666015625, - 0.593109130859375, 0.53729248046875, 0.5406036376953125, - 0.08929443359375, 0.692718505859375, 0.9475860595703125, - 0.9470062255859375, 0.95001220703125, 0.76312255859375, - 0.4351654052734375, 0.1455230712890625, 0.5405731201171875, - 0.344085693359375, 0.4164276123046875, 0.7116851806640625, - 0.0009613037109375, 0.0690765380859375, 0.763153076171875, - 0.466278076171875, 0.5503387451171875, 0.4406890869140625, - 0.5790252685546875, 0.565460205078125, 0.7899322509765625, - 0.7303924560546875, 0.9738616943359375, 0.3238372802734375, - 0.3607330322265625, 0.672882080078125, 0.7852325439453125, - 0.7913818359375, 0.3858184814453125, 0.1599578857421875, 0.711669921875, - 0.0718536376953125, 0.5901947021484375, 0.314971923828125, - 0.6615447998046875, 0.22625732421875, 0.1772613525390625, - 0.4079742431640625, 0.6528167724609375, 0.678985595703125, - 0.2953948974609375, 0.377288818359375, 0.43060302734375, - 0.7735595703125, 0.3681793212890625, 0.04931640625, 0.6631011962890625, - 0.51263427734375, 0.01104736328125, 0.6985626220703125, 0.2725830078125, - 0.905059814453125, 0.098968505859375, 0.2246551513671875, - 0.5769500732421875, 0.1580352783203125, 0.193878173828125, - 0.0428619384765625, 0.726593017578125, 0.670501708984375, - 0.9212188720703125, 0.525390625, 0.0754547119140625, 0.472381591796875, - 0.4110870361328125, 0.1614837646484375, 0.77349853515625, - 0.6185760498046875, 0.3011627197265625, 0.0369110107421875, - 0.9014434814453125, 0.7737274169921875, 0.7558746337890625, - 0.91314697265625, 0.1427764892578125, 0.8838043212890625, - 0.0647430419921875, 0.4954833984375, 0.0787200927734375, - 0.6395416259765625, 0.9893646240234375, 0.835296630859375, - 0.016510009765625, 0.8967437744140625, 0.58428955078125, - 0.620758056640625, 0.78497314453125, 0.513519287109375, - 0.5819549560546875, 0.1818695068359375, 0.467803955078125, - 0.4390716552734375, 0.1812896728515625, 0.5677490234375, 0.999755859375, - 0.651336669921875, 0.7785797119140625, 0.9160614013671875, - 0.9070587158203125, 0.3326263427734375, 0.165740966796875, - 0.5003204345703125 - ], - "dims": [1, 8, 28, 28], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/Relu/ReLuMnist12.mlir b/mlir-assigner/tests/Ops/Relu/ReLuMnist12.mlir deleted file mode 100644 index 32b9db9..0000000 --- a/mlir-assigner/tests/Ops/Relu/ReLuMnist12.mlir +++ /dev/null @@ -1,20 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "relumnist12.0.mlir"} { - func.func @main_graph(%arg0: memref<1x8x28x28xf32>) -> memref<1x8x28x28xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 0.000000e+00 : f32 - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x8x28x28xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 8 { - affine.for %arg3 = 0 to 28 { - affine.for %arg4 = 0 to 28 { - %0 = affine.load %arg0[%arg1, %arg2, %arg3, %arg4] : memref<1x8x28x28xf32> - %1 = arith.cmpf oge, %0, %cst : f32 - %2 = arith.select %1, %0, %cst : f32 - affine.store %2, %alloc[%arg1, %arg2, %arg3, %arg4] : memref<1x8x28x28xf32> - } - } - } - } - return %alloc : memref<1x8x28x28xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 8 , 28 , 28] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 8 , 28 , 28] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Relu/ReLuMnist12.res b/mlir-assigner/tests/Ops/Relu/ReLuMnist12.res deleted file mode 100644 index 7850c62..0000000 --- a/mlir-assigner/tests/Ops/Relu/ReLuMnist12.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x8x28x28xf32>[2.931976e-01,2.155914e-01,1.419525e-01,5.669250e-01,3.104553e-01,3.685608e-01,2.579651e-01,2.220459e-01,1.589508e-01,6.755829e-01,9.116669e-01,1.979218e-01,6.463928e-01,9.885559e-01,1.741486e-01,5.814819e-01,1.683350e-01,1.036682e-01,9.863281e-02,3.456116e-02,9.968262e-01,2.569580e-01,2.124329e-01,6.473389e-01,1.201019e-01,3.746185e-01,7.015076e-01,2.868347e-01,6.463623e-02,7.277222e-01,2.238007e-01,9.114227e-01,3.416443e-01,9.585266e-01,7.086334e-01,9.412231e-01,8.854218e-01,4.866791e-01,3.645325e-02,4.590149e-01,7.801208e-01,5.048676e-01,4.921265e-01,2.826996e-01,9.145966e-01,4.570160e-01,9.442749e-01,8.853455e-01,5.468750e-02,4.153595e-01,3.707886e-02,2.732849e-02,2.742462e-01,9.011230e-01,8.841400e-01,6.797791e-01,8.133392e-01,9.441833e-01,2.214203e-01,9.136047e-01,8.788147e-01,8.643494e-01,2.727966e-01,7.311096e-01,6.110687e-01,6.870422e-01,4.216003e-02,1.642456e-01,3.174286e-01,9.631348e-01,8.818054e-02,1.125641e-01,1.010590e-01,4.518738e-01,2.781525e-01,6.147766e-02,6.222076e-01,5.887756e-01,1.136169e-01,9.219971e-01,6.047058e-01,9.463501e-01,4.955292e-01,1.072693e-01,7.673035e-01,6.541443e-02,4.913025e-01,5.316162e-02,8.225555e-01,8.628693e-01,3.583374e-01,2.363434e-01,9.747925e-01,5.235901e-01,8.258667e-01,4.042053e-01,8.161926e-02,4.841614e-01,4.972229e-01,8.421478e-01,3.607635e-01,1.441650e-01,6.611023e-01,6.823730e-02,5.341339e-01,9.419250e-02,3.094482e-02,2.193298e-01,6.006470e-01,7.794800e-01,1.693726e-03,5.057831e-01,8.456573e-01,6.965637e-02,7.623291e-01,1.067963e-01,6.191254e-01,2.109375e-01,4.746704e-01,7.062683e-01,5.554504e-01,2.462158e-01,4.618835e-01,4.279480e-01,8.062286e-01,4.230652e-01,1.087494e-01,5.416107e-01,9.546509e-01,7.465515e-01,9.185638e-01,9.860077e-01,1.382599e-01,5.859375e-03,5.047607e-02,9.145203e-01,3.188324e-01,2.643890e-01,6.803131e-01,5.197754e-01,9.963226e-01,4.732971e-01,6.418457e-01,2.402954e-01,8.681488e-01,5.033722e-01,3.387756e-01,6.763000e-01,4.184570e-01,3.097839e-01,4.687195e-01,3.599701e-01,5.834808e-01,7.092743e-01,3.653717e-01,2.472229e-01,1.123352e-01,4.678802e-01,7.184143e-01,8.500671e-01,3.582001e-01,8.470154e-01,7.540131e-01,9.372864e-01,2.940521e-01,3.471375e-01,7.456207e-01,5.593262e-01,5.691833e-01,7.623444e-01,4.957886e-01,9.984436e-01,6.399536e-01,8.575439e-03,2.521515e-01,8.144836e-01,2.558289e-01,6.537323e-01,2.608032e-01,8.280945e-02,4.697723e-01,9.904022e-01,7.563171e-01,9.294434e-01,3.157654e-01,6.432190e-01,8.976746e-02,5.319214e-02,3.009949e-01,7.972565e-01,9.556580e-02,5.375061e-01,8.771210e-01,6.149292e-01,1.352692e-01,3.933868e-01,3.318176e-01,3.668213e-01,6.024170e-01,1.237946e-01,5.659027e-01,5.855103e-01,5.115662e-01,1.747437e-01,7.880859e-01,8.131104e-01,9.053650e-01,7.144928e-01,7.973480e-01,1.294556e-01,4.743805e-01,1.518707e-01,2.965698e-01,1.002960e-01,7.355042e-01,9.521484e-03,7.892151e-01,7.434845e-01,2.821045e-01,3.260956e-01,1.910095e-01,8.660431e-01,2.077332e-01,3.547668e-01,9.580994e-01,7.207642e-01,7.970734e-01,7.435760e-01,6.656647e-01,9.263000e-01,1.003876e-01,4.709473e-01,9.461670e-01,1.401520e-01,2.821045e-01,6.177063e-01,8.693695e-01,1.888885e-01,7.198792e-01,7.800293e-01,9.874878e-01,7.507782e-01,1.232758e-01,2.968445e-01,5.371552e-01,3.852234e-01,5.550232e-01,4.493256e-01,1.762238e-01,8.102417e-02,2.155304e-01,9.066162e-01,5.485077e-01,4.234619e-01,2.273254e-01,7.822571e-01,5.012970e-01,1.657867e-01,1.270905e-01,9.201508e-01,4.102325e-01,4.065704e-01,7.328186e-01,7.961731e-01,7.719116e-01,8.655853e-01,4.363556e-01,4.446564e-01,8.261414e-01,1.090393e-01,8.612061e-01,5.848999e-01,4.304810e-01,6.723938e-01,2.878723e-01,5.000763e-01,9.519043e-01,5.247650e-01,8.168030e-01,4.850311e-01,7.997742e-01,3.331909e-01,4.783325e-01,5.543060e-01,6.758423e-01,7.664642e-01,3.159180e-01,6.020050e-01,2.879791e-01,1.367798e-01,4.806824e-01,6.749725e-01,6.212463e-01,6.694183e-01,8.326416e-01,3.009033e-01,9.881592e-01,7.331390e-01,7.933502e-01,5.502777e-01,9.767151e-01,8.216400e-01,8.384094e-01,8.372498e-02,2.178802e-01,5.581207e-01,3.697815e-01,7.663116e-01,7.402191e-01,7.824097e-01,8.423920e-01,1.907959e-01,2.303162e-01,9.017944e-01,6.135559e-01,9.335175e-01,2.683258e-01,2.848969e-01,7.026825e-01,2.071381e-01,7.885590e-01,4.825134e-01,6.138153e-01,6.219177e-01,9.782562e-01,2.809906e-01,6.125031e-01,6.943817e-01,7.006683e-01,3.769836e-01,6.079559e-01,1.526947e-01,2.639465e-01,2.842407e-01,2.145691e-01,1.922302e-01,1.521301e-01,2.763214e-01,9.664612e-01,6.183014e-01,7.018433e-01,1.680145e-01,7.521057e-02,4.375458e-01,3.648682e-01,5.839233e-01,4.343414e-01,7.068176e-01,6.641846e-01,9.459229e-01,7.906036e-01,6.857147e-01,7.329712e-01,2.925873e-01,2.203979e-01,3.814697e-01,4.012299e-01,4.119415e-01,3.708344e-01,9.362793e-01,3.924561e-01,1.210022e-02,1.792755e-01,6.358337e-01,7.355652e-01,1.699829e-02,5.418396e-01,8.897247e-01,3.866577e-01,3.590088e-01,3.929749e-01,1.063385e-01,2.829285e-01,6.002655e-01,5.740204e-01,4.656982e-02,4.924469e-01,9.388275e-01,5.392914e-01,1.147614e-01,4.826660e-01,2.254028e-01,5.776672e-01,9.533081e-01,8.741760e-01,1.914368e-01,2.825470e-01,2.423553e-01,6.174927e-01,4.930115e-02,3.788300e-01,6.140137e-01,1.222076e-01,3.067474e-01,8.297729e-02,5.959473e-01,3.218079e-01,7.146912e-01,6.095581e-01,6.767273e-02,2.625580e-01,7.154846e-02,2.933960e-01,8.915253e-01,5.355530e-01,7.412720e-02,4.729004e-01,7.829132e-01,4.116821e-01,7.750854e-01,4.325562e-01,3.262024e-01,2.608490e-01,1.692963e-01,5.519714e-01,2.767181e-01,5.230255e-01,9.240723e-01,9.113770e-01,4.584961e-01,5.162506e-01,6.008759e-01,6.132202e-01,3.518677e-01,6.189270e-01,4.479675e-01,5.686951e-01,5.594635e-01,2.904053e-01,4.703979e-01,1.622620e-01,4.994354e-01,5.966797e-01,1.620483e-02,8.194122e-01,4.381104e-01,8.753052e-01,4.150238e-01,1.205597e-01,1.470032e-01,2.191620e-01,7.175598e-01,3.492737e-02,7.583466e-01,8.261871e-01,9.189758e-01,2.288818e-04,1.698761e-01,6.091309e-02,8.512115e-01,6.598969e-01,5.227661e-02,3.035736e-01,5.424805e-01,6.682129e-01,3.760986e-01,4.986572e-02,5.906219e-01,9.974365e-01,6.470337e-01,3.154449e-01,3.359222e-01,5.342560e-01,7.376099e-01,9.003754e-01,4.403381e-01,4.667664e-02,5.925598e-01,2.210388e-01,8.608398e-01,5.079651e-01,2.735901e-02,5.524139e-01,6.141968e-01,3.316650e-01,4.225006e-01,2.267456e-01,6.448517e-01,6.832275e-01,1.826782e-01,5.859680e-01,6.895447e-02,6.648102e-01,2.092896e-01,3.227234e-01,3.921509e-01,5.805511e-01,4.334412e-01,4.376678e-01,6.174316e-01,6.980591e-01,8.161926e-02,3.163605e-01,2.861786e-01,1.389923e-01,1.056976e-01,7.849884e-01,8.584442e-01,4.733582e-01,2.084045e-01,9.149475e-01,4.476929e-01,3.254700e-01,1.867065e-01,9.177094e-01,8.880310e-01,3.401947e-01,5.170593e-01,7.101135e-01,3.380432e-01,3.709564e-01,5.773926e-01,2.417603e-01,9.309998e-01,1.316833e-01,5.518646e-01,8.520203e-01,6.548767e-01,4.505920e-02,2.398682e-02,9.435272e-01,9.953918e-01,5.034485e-01,9.374390e-01,2.152710e-01,6.638794e-01,8.694611e-01,4.352264e-01,5.316315e-01,1.336823e-01,8.699951e-01,9.622192e-02,4.897461e-01,8.600616e-01,1.659851e-01,5.001068e-01,7.064056e-01,3.534851e-01,9.397888e-02,7.799683e-01,1.004639e-01,3.992310e-01,5.697327e-01,2.712250e-01,3.173065e-01,7.633057e-01,5.456696e-01,4.887390e-01,7.019501e-01,3.850403e-01,5.195770e-01,6.532440e-01,5.626984e-01,1.970978e-01,8.609467e-01,2.308807e-01,3.858948e-01,9.693604e-01,4.338989e-01,7.807770e-01,1.427917e-01,2.253723e-02,6.397858e-01,4.125366e-01,7.185364e-01,6.653290e-01,6.387787e-01,1.296234e-01,3.060608e-01,1.079865e-01,6.932373e-01,9.247894e-01,5.857849e-01,2.856445e-01,2.523346e-01,6.934967e-01,2.944946e-03,5.065918e-02,2.126923e-01,4.249878e-01,7.920532e-01,8.229218e-01,7.424927e-02,5.502167e-01,4.241943e-01,3.236084e-01,8.473053e-01,8.969879e-01,1.947632e-01,5.174255e-01,6.485748e-01,5.277863e-01,4.890137e-01,5.733032e-01,2.276611e-01,6.104889e-01,8.946228e-01,9.796143e-02,7.431641e-01,8.999023e-01,1.919556e-01,1.095886e-01,6.678619e-01,1.196136e-01,2.263794e-01,9.727173e-01,6.676483e-01,2.416992e-01,4.886475e-01,6.042023e-01,3.476257e-01,1.483459e-01,8.850098e-02,7.915497e-01,2.368927e-01,7.911530e-01,8.894653e-01,6.027679e-01,8.400879e-01,5.103455e-01,9.038086e-01,7.627563e-01,1.061859e-01,5.646515e-01,5.032959e-01,7.626038e-01,2.814941e-01,8.969727e-01,4.245911e-01,4.263153e-01,7.292633e-01,6.641541e-01,5.006714e-01,9.722290e-01,4.529266e-01,5.520477e-01,6.965942e-01,6.356506e-01,1.671143e-01,2.630615e-01,9.540405e-01,1.999207e-01,7.634277e-01,6.242981e-01,6.834412e-01,7.714844e-01,7.639618e-01,1.972046e-01,4.379272e-01,5.205536e-01,7.961578e-01,5.737152e-01,9.634399e-02,3.477325e-01,8.183899e-01,1.110535e-01,2.467957e-01,7.968140e-01,3.723145e-02,9.963989e-02,3.513184e-01,7.243195e-01,8.037262e-01,6.440735e-01,8.673401e-01,5.571442e-01,5.983582e-01,6.514740e-01,1.408844e-01,9.936523e-01,5.789490e-01,4.064941e-02,6.257324e-01,7.369995e-02,8.968658e-01,3.205719e-01,4.165649e-03,1.637268e-02,9.989319e-01,2.751770e-01,5.479431e-01,7.434998e-01,6.436920e-01,2.415466e-02,2.440491e-01,8.757629e-01,7.621155e-01,8.783264e-01,2.606201e-01,4.391022e-01,3.027649e-01,2.231750e-01,9.392700e-01,3.392944e-01,3.445435e-02,9.613953e-01,7.965088e-03,5.930176e-01,3.635864e-01,3.286896e-01,1.949921e-01,5.166473e-01,8.308258e-01,9.890594e-01,4.656677e-01,6.793671e-01,8.208008e-01,1.002502e-01,9.755554e-01,5.204010e-01,6.231842e-01,2.692871e-01,9.030151e-01,5.368042e-01,3.875122e-01,2.878418e-01,2.914429e-02,3.031616e-01,1.781769e-01,9.384003e-01,5.499725e-01,8.166504e-02,7.745819e-01,8.107147e-01,2.799225e-01,6.600342e-01,6.735535e-01,3.827057e-01,7.023315e-01,3.836823e-01,2.275543e-01,6.170959e-01,7.637634e-01,3.428650e-01,2.629852e-01,5.974121e-01,7.486877e-01,5.238800e-01,6.115265e-01,8.706665e-01,4.895020e-02,1.717529e-01,4.365540e-02,9.707947e-01,2.460938e-01,7.389832e-01,8.819733e-01,4.925537e-01,4.820099e-01,7.009888e-01,4.773712e-01,4.509735e-01,5.296326e-01,9.734955e-01,4.748840e-01,3.744354e-01,3.347778e-02,5.400848e-01,8.677673e-02,3.739166e-01,1.426849e-01,6.985474e-01,9.225159e-01,7.450562e-01,5.023804e-01,7.509613e-01,6.649170e-01,1.023407e-01,9.344482e-01,6.095581e-01,9.272156e-01,4.537048e-01,4.975891e-01,4.556274e-01,2.434540e-01,9.055786e-01,7.251282e-01,3.061371e-01,4.126892e-01,5.868378e-01,1.543274e-01,8.247070e-01,6.552734e-01,2.343903e-01,9.393768e-01,8.442230e-01,7.734375e-01,2.701416e-01,6.784210e-01,7.228088e-02,3.753967e-01,6.736908e-01,7.374268e-01,6.455536e-01,1.488953e-01,1.105652e-01,6.270142e-01,7.846832e-01,1.000214e-01,2.211151e-01,6.974487e-01,7.749634e-01,6.595306e-01,1.698761e-01,9.514008e-01,7.894897e-02,6.674347e-01,2.917480e-01,7.461395e-01,5.056000e-01,4.779663e-01,7.082977e-01,3.511200e-01,8.032074e-01,7.796631e-01,5.071259e-01,3.924561e-01,5.741119e-01,7.366791e-01,6.442261e-01,9.137573e-01,8.289795e-01,9.822083e-01,6.068268e-01,1.165771e-02,2.614136e-01,1.643372e-01,5.825653e-01,7.409058e-01,2.774811e-01,6.682892e-01,6.221008e-02,6.362915e-01,9.525757e-01,5.862732e-01,7.628937e-01,9.000092e-01,6.018219e-01,3.589172e-01,8.605957e-03,2.690735e-01,1.686859e-01,3.651428e-01,8.436432e-01,1.728821e-01,7.305450e-01,7.351532e-01,5.381165e-01,5.501251e-01,5.023804e-01,3.002319e-01,5.017090e-02,9.429626e-01,3.256836e-01,4.208679e-01,8.544922e-01,4.521637e-01,1.511078e-01,8.038025e-01,3.470917e-01,2.491760e-02,2.835083e-01,7.389069e-01,7.483521e-01,1.057892e-01,2.972412e-02,1.227722e-01,9.973755e-01,4.833984e-01,7.250214e-01,5.641632e-01,3.428802e-01,8.374329e-01,5.593109e-01,9.147186e-01,2.439728e-01,4.963531e-01,9.961395e-01,2.770996e-02,7.916565e-01,6.784058e-01,8.336029e-01,6.794739e-01,4.080963e-01,9.866028e-01,8.317108e-01,7.737122e-01,9.233246e-01,6.786194e-01,8.412781e-01,7.803345e-02,3.080139e-01,1.386414e-01,5.154266e-01,8.856812e-01,1.026917e-02,3.809357e-01,5.238953e-01,5.925293e-01,4.878235e-02,2.011566e-01,2.568207e-01,1.269073e-01,5.912476e-01,7.628021e-01,3.688354e-01,2.723999e-01,8.403778e-01,9.197693e-01,2.557678e-01,7.759857e-01,7.890320e-02,1.431732e-01,3.053436e-01,5.086365e-01,1.294250e-01,6.109772e-01,1.788177e-01,2.920532e-01,2.143860e-02,8.643036e-01,5.143738e-01,4.754944e-01,6.720886e-01,1.485291e-01,1.272736e-01,2.233429e-01,8.408203e-01,1.846313e-02,2.841034e-01,5.343018e-01,4.674988e-01,9.375610e-01,5.471497e-01,6.611938e-01,6.568146e-01,3.695679e-01,3.580933e-01,8.541870e-01,5.319519e-01,2.541962e-01,9.676208e-01,7.465363e-01,6.752777e-01,2.774658e-01,3.184814e-01,2.622833e-01,3.085938e-01,5.293427e-01,9.776611e-01,8.272552e-01,9.576416e-02,2.253265e-01,7.342072e-01,9.021454e-01,7.449493e-01,6.159973e-01,9.528198e-01,4.776001e-02,4.169312e-01,9.467010e-01,2.576752e-01,9.291382e-01,6.871796e-01,5.640411e-01,6.355133e-01,4.711914e-02,1.618195e-01,7.946777e-02,9.128113e-01,9.951477e-01,7.255859e-01,9.074097e-01,4.925537e-01,8.638763e-01,2.599487e-01,8.449097e-01,5.679169e-01,2.115021e-01,6.041260e-01,1.176453e-01,4.014282e-01,5.076447e-01,1.510162e-01,2.529907e-01,6.586456e-01,2.863617e-01,6.894531e-01,4.127045e-01,8.098450e-01,4.188385e-01,5.608063e-01,7.926331e-01,9.067383e-01,7.629089e-01,3.716125e-01,9.476318e-01,7.535095e-01,2.354431e-02,9.013367e-02,3.686676e-01,8.791809e-01,6.595001e-01,9.592590e-01,1.033936e-01,8.737183e-02,3.318176e-01,9.065247e-02,2.337189e-01,4.364166e-01,9.506073e-01,5.086365e-01,3.259277e-02,8.737183e-01,8.700562e-02,3.025513e-01,7.409515e-01,1.720428e-01,3.686981e-01,3.479004e-01,1.534424e-01,9.292603e-03,4.047546e-01,6.401062e-01,8.499146e-02,5.903625e-02,5.507202e-01,9.167175e-01,3.254395e-01,1.864777e-01,2.016907e-01,6.812897e-01,7.521820e-01,8.315125e-01,3.954315e-01,2.783813e-01,4.800415e-01,4.119110e-01,5.404358e-01,6.376190e-01,8.197174e-01,2.481842e-01,9.058838e-01,5.313263e-01,2.013855e-01,1.170349e-02,5.563965e-01,7.737427e-01,2.719116e-01,8.720245e-01,4.722137e-01,7.017212e-01,5.508881e-01,4.229889e-01,1.215210e-01,4.852295e-02,7.632751e-01,4.880371e-01,1.455688e-02,2.193604e-01,4.975891e-01,1.086121e-01,8.145447e-01,7.756958e-01,5.224915e-01,3.234558e-01,8.489990e-01,2.921600e-01,7.763824e-01,8.675537e-01,8.791199e-01,9.157104e-01,4.183197e-01,6.769867e-01,7.254028e-02,8.883209e-01,5.431061e-01,2.100983e-01,7.629395e-05,3.034973e-02,1.077423e-01,7.005310e-01,8.108978e-01,3.790131e-01,8.768158e-01,1.986847e-01,6.739960e-01,7.933197e-01,9.017944e-01,2.493134e-01,8.703613e-01,7.423096e-01,1.493225e-01,5.389099e-01,9.905701e-01,2.940369e-02,2.174988e-01,8.785553e-01,4.608612e-01,8.221436e-01,7.625122e-01,4.919739e-01,6.516113e-01,1.821442e-01,3.548889e-01,4.962616e-01,7.159576e-01,5.818176e-01,8.739319e-01,8.785858e-01,4.445496e-01,3.279724e-01,3.350372e-01,8.147278e-01,6.618042e-01,6.395111e-01,9.033203e-02,8.265686e-01,8.320465e-01,5.284576e-01,3.280334e-01,2.319183e-01,1.361389e-01,3.724213e-01,9.376831e-01,3.926239e-01,2.578735e-03,9.132538e-01,8.964386e-01,5.445709e-01,8.305206e-01,9.029236e-01,1.540070e-01,6.397247e-01,2.221985e-01,1.384125e-01,3.856201e-01,3.166656e-01,4.347687e-01,2.583313e-02,6.544952e-01,5.704651e-01,3.593597e-01,6.052551e-01,7.214508e-01,1.906586e-01,5.406494e-01,9.658813e-02,3.754883e-01,1.019135e-01,4.378357e-01,7.745667e-01,8.998108e-01,5.709839e-02,7.246552e-01,1.391907e-01,8.585663e-01,4.869690e-01,6.229858e-01,4.124298e-01,2.194824e-01,3.521729e-02,6.663361e-01,5.844116e-03,6.540985e-01,7.842712e-01,7.919159e-01,2.291107e-01,8.529663e-01,7.027283e-01,1.423645e-01,3.785095e-01,4.630280e-01,4.942322e-01,9.415283e-01,8.788147e-01,2.095337e-01,9.652100e-01,7.880249e-01,7.431183e-01,5.869904e-01,2.897644e-01,6.140594e-01,5.415039e-01,7.431030e-03,2.636871e-01,2.705383e-01,1.463013e-01,2.544861e-01,8.732605e-01,4.588623e-01,7.500916e-01,4.237976e-01,6.417847e-02,5.324097e-01,1.646118e-01,7.077332e-01,4.641266e-01,7.921448e-01,9.407349e-01,1.923218e-01,6.362915e-03,8.492432e-01,7.957611e-01,2.723846e-01,3.900299e-01,3.099060e-02,4.460297e-01,9.675751e-01,5.230713e-01,4.005432e-01,8.740692e-01,4.419250e-01,8.070374e-02,7.110596e-02,9.086914e-01,5.940247e-01,7.535248e-01,5.001068e-01,2.054291e-01,9.182587e-01,3.581390e-01,9.935303e-01,1.890106e-01,8.924713e-01,5.824890e-01,6.860046e-01,9.470215e-01,4.721985e-01,7.295227e-02,8.069611e-01,4.516296e-01,3.375244e-01,1.639404e-01,8.413086e-01,1.537476e-01,7.530212e-02,4.689484e-01,1.247253e-01,7.316589e-01,3.958435e-01,6.376648e-01,2.075043e-01,1.695251e-02,6.201477e-01,7.233582e-01,1.892853e-01,8.896637e-01,3.981934e-01,7.953644e-01,7.795258e-01,3.144226e-01,6.697235e-01,6.002808e-02,6.899872e-01,3.292847e-02,9.339600e-01,8.338165e-01,5.403748e-01,6.828003e-01,5.096893e-01,4.187622e-01,5.392303e-01,5.182953e-01,4.563904e-02,1.064911e-01,7.450256e-01,6.819458e-01,7.049561e-01,3.103790e-01,2.047882e-01,4.055328e-01,3.813324e-01,1.363831e-01,8.140564e-01,9.639893e-01,5.112000e-01,7.814484e-01,1.752014e-01,3.670502e-01,6.014252e-01,3.520508e-01,1.177368e-01,6.731567e-01,4.110565e-01,3.207855e-01,4.931641e-01,5.787201e-01,8.628845e-02,9.877319e-01,2.252655e-01,1.280670e-01,1.124420e-01,4.180908e-01,1.714172e-01,2.114410e-01,6.389008e-01,2.308807e-01,4.604340e-01,6.114960e-01,9.637756e-01,2.456360e-01,2.499084e-01,5.829010e-01,4.343262e-01,3.376465e-01,2.154999e-01,7.706146e-01,7.211609e-01,6.520538e-01,3.209686e-01,4.517212e-01,9.184265e-01,6.727142e-01,4.222870e-01,4.084167e-01,2.433014e-01,3.316345e-01,8.088837e-01,8.313141e-01,6.431122e-01,3.204346e-02,1.200867e-01,5.787964e-01,4.006042e-01,5.741577e-01,5.583496e-01,6.919708e-01,6.420288e-01,5.824280e-02,1.624451e-01,7.029266e-01,9.311523e-01,2.859039e-01,8.590698e-01,7.499542e-01,5.787201e-01,3.741455e-01,4.549408e-01,7.806244e-01,7.199554e-01,8.289032e-01,9.406738e-01,5.710449e-01,7.610779e-01,2.392426e-01,7.617188e-01,4.295959e-01,2.324219e-01,2.884521e-01,1.095123e-01,7.777100e-01,8.795624e-01,8.377075e-02,2.279816e-01,1.939850e-01,6.250763e-01,2.791748e-01,4.125519e-01,5.555573e-01,7.893677e-01,4.138641e-01,9.904785e-01,3.477936e-01,5.607605e-02,7.371521e-02,8.663940e-01,3.739319e-01,2.388306e-01,2.936859e-01,2.939148e-01,8.284912e-01,3.265381e-03,3.386841e-01,4.142609e-01,5.401611e-01,8.417664e-01,8.366394e-02,4.285889e-01,2.641296e-01,8.152618e-01,8.941803e-01,9.964600e-01,3.979492e-02,5.160522e-02,9.367981e-01,7.166748e-01,7.684784e-01,9.696350e-01,3.939819e-02,1.838989e-01,4.357910e-01,4.767761e-01,1.548615e-01,3.899841e-01,1.495819e-01,6.300659e-01,2.189178e-01,5.051727e-01,1.971893e-01,2.547607e-01,1.215820e-01,5.458374e-01,2.458191e-01,4.273529e-01,7.738495e-01,7.318726e-01,8.465576e-01,6.866455e-02,7.809448e-01,2.413330e-01,7.093506e-01,7.845459e-01,3.183136e-01,6.947632e-01,9.993896e-01,8.193665e-01,4.411011e-01,2.301636e-01,8.524780e-01,4.058380e-01,8.632660e-01,2.962952e-01,9.496460e-01,8.516083e-01,5.794830e-01,3.210144e-01,9.519958e-01,9.271698e-01,8.409576e-01,4.118042e-01,5.614471e-01,5.010376e-01,1.942139e-01,7.180328e-01,9.736633e-02,9.645233e-01,5.010376e-01,3.262177e-01,3.851013e-01,5.069580e-01,3.110657e-01,3.683319e-01,2.696686e-01,8.032532e-01,3.031616e-01,7.628784e-01,1.128845e-01,6.889343e-02,1.234283e-01,9.517670e-01,9.911499e-01,1.542664e-01,6.822662e-01,9.628601e-01,9.834290e-01,6.838531e-01,9.825134e-02,9.661560e-01,7.960815e-01,8.079529e-01,3.527985e-01,3.074951e-01,9.743652e-01,2.526855e-02,1.523438e-01,9.575195e-01,2.206268e-01,1.228638e-01,6.611481e-01,6.263733e-02,1.728516e-01,8.661041e-01,5.229187e-01,7.084503e-01,4.705048e-01,5.896912e-01,1.577759e-01,3.436279e-02,1.186676e-01,3.441772e-01,1.329041e-01,2.912140e-01,1.183319e-01,4.230042e-01,7.763824e-01,1.872864e-01,3.603973e-01,8.411255e-01,4.049530e-01,3.740997e-01,7.263641e-01,4.517059e-01,3.593445e-02,7.502289e-01,1.072693e-01,4.782104e-01,7.486572e-01,1.274414e-01,7.715912e-01,5.401611e-02,8.087921e-01,7.057648e-01,5.186920e-01,8.704834e-01,4.843903e-01,7.616119e-01,8.629913e-01,9.513550e-01,3.527069e-01,7.970886e-01,9.854584e-01,6.463318e-01,6.039581e-01,3.213654e-01,7.050171e-01,3.045654e-01,1.966705e-01,5.836487e-02,5.816803e-01,2.313080e-01,9.494629e-01,5.512543e-01,9.221191e-01,5.743866e-01,7.441711e-02,9.835205e-01,9.577332e-01,5.786743e-01,6.983795e-01,3.716736e-01,1.249084e-01,2.348785e-01,5.916290e-01,2.730560e-01,2.884521e-01,7.641602e-01,9.716034e-01,8.315887e-01,6.201172e-01,7.870178e-01,7.634583e-01,9.699554e-01,1.096802e-01,5.227509e-01,3.414764e-01,2.086334e-01,8.422852e-03,3.359070e-01,3.568878e-01,1.828003e-02,9.284973e-01,9.681702e-01,8.884430e-01,1.391296e-01,7.357025e-01,2.179413e-01,6.807709e-01,7.005463e-01,5.645752e-01,7.368927e-01,9.746094e-01,3.623962e-01,5.665588e-02,4.118347e-01,3.781433e-01,6.965332e-01,9.097595e-01,5.518646e-01,9.235229e-01,7.773895e-01,2.603607e-01,4.512177e-01,9.481201e-01,7.253265e-01,3.873749e-01,5.218201e-01,2.757721e-01,2.649078e-01,6.080322e-01,6.016998e-01,3.959045e-01,3.841400e-01,9.739990e-01,5.156555e-01,1.126404e-01,8.585205e-01,2.811890e-01,4.280396e-01,9.237671e-01,3.289948e-01,1.168365e-01,3.739929e-01,8.742523e-01,8.294830e-01,1.543732e-01,6.698608e-02,5.513916e-01,9.539642e-01,9.833984e-01,7.817383e-01,8.032837e-01,2.593994e-01,9.352417e-01,2.431183e-01,3.315887e-01,3.549347e-01,5.301361e-01,7.824097e-01,3.717804e-01,8.443298e-01,6.451874e-01,8.657227e-01,6.479034e-01,7.324677e-01,1.738739e-01,1.627655e-01,7.527008e-01,5.934906e-01,8.036346e-01,6.953125e-01,1.770020e-03,1.418610e-01,4.130554e-01,3.026123e-01,9.580688e-01,2.023315e-01,7.995148e-01,5.760498e-01,7.755585e-01,3.027344e-01,4.530792e-01,7.487488e-02,9.863281e-02,8.979645e-01,7.339935e-01,5.825958e-01,5.111694e-01,9.819641e-01,1.683655e-01,9.315186e-01,4.884033e-01,3.595428e-01,1.309509e-01,9.399872e-01,8.461304e-01,2.474976e-01,6.378021e-01,1.590881e-01,9.495239e-01,5.059509e-01,2.069550e-01,2.816772e-01,6.531219e-01,4.965363e-01,8.603058e-01,1.754761e-01,6.929169e-01,5.484772e-01,6.749573e-01,4.831696e-01,9.609985e-01,6.127014e-01,8.271332e-01,8.377838e-01,3.487549e-01,7.398987e-01,7.760620e-01,5.232391e-01,6.871033e-01,2.281494e-01,9.306030e-01,2.286835e-01,2.029419e-03,7.603760e-01,1.479645e-01,7.788086e-01,3.506927e-01,8.527374e-01,8.868256e-01,8.641968e-01,3.942413e-01,7.118988e-01,9.381409e-01,4.004669e-01,7.849274e-01,4.931183e-01,2.899780e-01,9.287109e-01,2.789612e-01,7.077637e-01,5.430450e-01,1.447906e-01,4.719086e-01,2.825928e-01,7.739868e-01,1.473083e-01,7.742004e-01,8.407288e-01,8.929443e-02,1.369781e-01,4.818420e-01,9.518127e-01,8.084106e-01,4.216003e-01,2.265625e-01,5.579681e-01,2.578735e-02,3.333282e-01,8.881073e-01,2.675018e-01,8.316498e-01,2.563171e-01,5.212402e-01,4.064178e-01,3.167877e-01,4.422913e-01,8.314056e-01,4.580688e-01,5.551758e-01,5.152740e-01,3.910370e-01,3.431244e-01,5.775604e-01,3.489685e-01,9.978638e-01,5.275879e-01,1.267090e-01,1.987152e-01,1.631622e-01,2.297058e-01,1.996613e-01,6.263580e-01,5.520172e-01,8.933258e-01,9.123535e-01,2.544098e-01,7.355957e-01,2.999878e-01,8.320007e-01,9.115601e-02,1.243896e-01,6.161346e-01,7.463531e-01,4.428864e-01,6.296082e-01,9.782410e-01,3.102112e-02,7.840118e-01,3.646698e-01,9.413452e-01,4.115295e-01,9.498596e-02,2.407837e-02,5.551605e-01,1.246796e-01,2.338409e-01,4.398956e-01,2.921906e-01,3.128052e-02,2.007904e-01,1.927185e-01,9.958191e-01,6.281281e-01,4.404755e-01,5.972748e-01,5.138397e-01,6.526489e-01,2.112885e-01,9.469299e-01,9.088745e-01,8.726501e-02,8.829651e-01,8.892212e-01,7.001801e-01,7.297363e-01,8.657532e-01,7.407227e-01,1.452332e-01,9.096375e-01,9.902649e-01,7.385406e-01,1.905823e-01,1.375122e-01,1.115875e-01,7.772369e-01,6.263123e-01,5.076447e-01,1.300201e-01,3.549500e-01,5.726166e-01,5.265350e-01,3.138580e-01,4.926453e-01,8.921509e-01,3.548126e-01,8.795166e-01,7.258759e-01,6.589813e-01,5.104828e-01,2.830048e-01,4.076691e-01,8.224487e-03,5.695343e-01,7.229309e-01,4.274445e-01,3.929596e-01,4.190063e-02,6.504974e-01,6.395721e-01,2.597046e-02,9.732666e-01,1.997070e-01,9.045410e-01,7.494812e-01,7.064667e-01,5.354156e-01,6.941528e-01,2.791595e-01,2.025757e-01,1.376343e-01,7.636108e-01,4.244690e-01,5.376282e-01,1.027985e-01,9.862061e-01,1.016998e-01,2.947998e-02,5.381775e-01,3.698578e-01,8.285675e-01,8.395081e-01,9.809875e-01,1.539154e-01,2.086182e-01,5.233307e-01,9.463501e-01,4.857788e-01,5.734253e-02,6.917114e-01,9.104004e-01,3.418579e-01,7.212219e-01,3.722229e-01,5.525208e-01,9.145508e-01,9.541321e-02,8.405151e-01,6.804810e-01,6.590424e-01,5.712738e-01,7.263641e-01,2.556763e-01,2.324371e-01,4.670715e-01,8.493958e-01,1.972046e-01,8.582764e-01,7.641602e-02,2.123413e-01,7.411499e-01,4.932098e-01,8.803711e-01,9.050903e-01,2.177734e-01,6.495819e-01,6.658936e-02,7.512665e-01,6.879883e-01,4.864044e-01,1.251526e-01,6.740265e-01,3.830872e-01,3.608093e-01,9.924164e-01,1.948242e-01,5.357819e-01,3.288269e-02,8.424377e-01,6.201019e-01,2.751160e-02,4.098053e-01,5.864563e-01,3.998718e-01,6.134644e-01,4.645844e-01,5.730591e-01,1.539612e-02,4.881134e-01,8.758392e-01,9.061279e-01,6.705627e-01,2.831116e-01,4.015198e-01,7.177277e-01,6.661072e-01,5.549622e-02,9.343262e-01,5.773468e-01,7.651215e-01,8.141785e-01,1.107330e-01,8.631439e-01,2.126465e-01,3.190765e-01,5.204926e-01,4.954834e-01,7.637634e-01,9.005737e-01,4.599457e-01,4.891663e-01,6.099091e-01,2.810669e-02,9.765625e-01,4.869080e-02,2.342224e-01,3.818207e-01,2.400360e-01,9.042206e-01,2.847443e-01,8.751526e-01,7.690125e-01,5.140686e-02,2.817841e-01,2.190704e-01,9.119568e-01,1.849365e-01,3.088074e-01,9.175415e-01,5.672607e-01,2.623749e-01,7.413635e-01,7.831268e-01,6.145020e-01,3.671265e-01,5.135193e-01,6.699829e-01,2.262573e-01,7.403717e-01,1.270752e-01,7.586670e-01,1.697998e-01,1.122589e-01,9.293213e-01,3.715515e-01,2.720032e-01,7.359009e-01,9.173584e-02,1.948090e-01,8.993988e-01,5.813751e-01,8.034821e-01,9.949951e-01,2.525330e-01,9.644775e-01,6.528625e-01,9.923553e-01,7.055511e-01,7.860565e-01,8.064117e-01,5.002441e-01,8.767700e-02,2.045593e-01,9.217377e-01,9.501953e-01,5.235748e-01,3.939819e-02,1.714172e-01,3.963928e-01,5.226135e-01,5.200348e-01,3.441162e-01,2.340240e-01,3.603821e-01,4.092560e-01,1.388092e-01,7.904053e-02,2.996216e-01,5.978394e-01,2.846985e-01,7.978058e-01,1.920929e-01,3.428040e-01,5.614471e-01,8.671112e-01,9.772339e-01,5.935669e-02,4.079895e-01,4.514771e-01,8.515778e-01,5.593414e-01,3.403625e-01,2.614288e-01,9.607544e-01,8.445892e-01,7.519836e-01,9.949951e-01,3.373871e-01,3.637848e-01,5.770264e-01,2.070770e-01,3.611908e-01,9.663696e-01,3.786774e-01,4.866180e-01,8.210449e-01,9.504700e-02,6.793976e-01,1.242523e-01,3.753815e-01,5.652313e-01,8.049469e-01,5.313263e-01,7.407379e-01,1.442413e-01,3.242188e-01,2.153168e-01,5.083008e-01,7.490540e-01,9.170837e-01,3.319702e-01,8.350525e-01,5.838623e-01,8.680115e-01,5.576172e-01,7.603302e-01,5.041046e-01,1.897583e-01,6.576843e-01,1.116638e-01,7.380371e-01,9.931641e-01,2.867432e-01,7.167206e-01,5.070343e-01,6.998291e-01,2.203674e-01,9.345703e-01,3.072510e-01,9.465027e-02,3.953552e-02,7.476959e-01,7.620239e-01,9.929199e-01,7.356110e-01,5.174713e-01,5.250092e-01,5.363922e-01,1.266174e-01,8.982391e-01,3.634491e-01,9.632874e-02,2.531433e-01,7.241821e-01,7.397766e-01,3.206329e-01,5.951538e-01,6.198578e-01,2.619629e-01,1.761780e-01,1.689911e-01,2.481995e-01,9.938812e-01,7.407532e-01,6.249847e-01,3.194427e-01,3.848267e-01,2.586975e-01,6.650085e-01,5.307312e-01,9.066772e-01,6.761627e-01,1.713257e-01,4.261780e-02,4.071655e-01,2.752686e-02,7.206726e-01,6.964264e-01,2.377319e-02,2.505646e-01,9.491425e-01,3.348541e-01,4.464264e-01,8.298645e-01,2.672119e-01,1.889648e-01,2.349701e-01,2.571869e-01,9.058228e-01,9.563293e-01,2.583618e-01,7.290955e-01,3.450165e-01,2.923889e-01,2.830811e-01,8.715973e-01,4.480591e-01,7.690277e-01,2.683868e-01,6.190033e-01,2.832031e-02,5.772552e-01,5.325775e-01,4.726715e-01,5.189362e-01,7.179565e-01,6.102600e-01,1.608887e-01,8.654327e-01,2.710114e-01,1.291504e-01,6.736908e-01,7.946930e-01,4.246826e-01,4.241791e-01,9.120789e-01,4.112396e-01,1.346436e-01,9.068451e-01,7.098694e-01,4.250946e-01,9.363861e-01,3.446350e-01,8.969574e-01,3.800812e-01,1.431580e-01,9.210052e-01,4.203949e-01,6.661835e-01,2.740936e-01,5.668335e-01,6.165771e-01,7.458954e-01,7.079010e-01,3.570557e-01,5.491028e-01,2.382507e-01,6.292725e-02,8.637695e-01,4.081726e-02,3.467255e-01,5.378723e-02,7.791595e-01,9.074097e-01,7.241516e-01,7.307892e-01,1.759033e-01,8.707275e-01,6.001587e-01,5.303497e-01,8.895874e-01,2.660828e-01,7.543945e-02,8.706970e-01,2.057190e-01,2.028198e-01,5.908813e-01,3.412170e-01,3.360748e-01,3.000031e-01,4.030457e-01,5.415039e-01,7.281799e-01,7.602081e-01,6.884766e-02,5.521851e-01,6.593933e-01,5.455933e-01,1.349487e-01,8.609161e-01,4.693298e-01,4.135895e-01,1.746674e-01,4.082336e-01,5.022125e-01,4.481812e-01,9.027100e-01,1.166077e-01,8.958282e-01,1.529236e-01,2.291260e-01,6.899567e-01,3.038635e-01,3.624573e-01,7.159119e-01,9.815369e-01,5.205841e-01,2.353058e-01,6.039124e-01,3.248749e-01,2.199860e-01,2.661285e-01,3.208313e-01,6.205750e-01,8.719025e-01,1.348724e-01,1.409302e-01,4.458466e-01,7.566681e-01,2.764282e-01,7.537689e-01,4.035187e-01,3.705750e-01,6.886292e-02,9.286957e-01,1.958008e-01,3.776703e-01,2.364655e-01,7.376556e-01,6.104889e-01,4.318237e-02,8.293610e-01,1.322632e-01,9.868774e-01,3.963013e-01,3.964844e-01,9.409790e-01,3.132172e-01,2.733765e-01,2.472687e-01,5.226746e-01,5.850983e-01,5.660400e-01,1.986389e-01,6.254883e-01,8.176727e-01,2.160950e-01,8.502045e-01,4.526520e-01,6.579132e-01,1.581573e-01,5.883789e-02,5.365448e-01,5.764160e-01,5.142517e-01,2.212524e-01,4.694519e-01,8.168030e-01,4.330750e-01,6.944275e-01,3.741150e-01,6.855621e-01,6.144867e-01,9.689789e-01,1.029053e-01,5.231323e-01,2.029266e-01,2.354431e-02,1.177673e-01,9.141846e-01,6.699524e-01,8.771362e-01,6.631927e-01,3.518219e-01,5.046082e-01,9.983826e-01,8.044739e-01,5.018311e-01,3.292542e-01,5.312347e-01,2.015839e-01,2.688751e-01,3.533020e-01,3.568878e-01,1.616669e-01,9.334717e-01,8.092499e-01,1.969147e-01,9.556732e-01,2.940369e-02,7.839813e-01,6.490631e-01,8.825836e-01,8.897552e-01,4.751434e-01,6.346588e-01,6.766968e-01,5.760040e-01,8.234406e-01,2.987366e-01,5.271912e-01,4.617004e-01,9.966125e-01,8.192444e-01,7.591248e-02,2.899170e-01,6.860199e-01,9.284668e-01,7.085114e-01,6.069794e-01,8.078766e-01,9.207764e-01,3.360291e-01,6.370239e-01,6.886444e-01,4.849854e-01,2.322693e-01,9.522095e-01,9.595795e-01,7.293243e-01,4.327393e-02,7.520294e-01,7.488403e-01,4.271393e-01,9.842529e-01,5.844116e-03,8.581696e-01,2.770233e-01,7.301025e-01,3.711548e-01,6.469574e-01,7.123718e-01,9.013062e-01,3.159790e-01,5.492859e-01,1.015778e-01,8.858795e-01,4.061279e-01,9.991455e-02,4.288483e-01,2.552338e-01,8.108521e-02,2.695160e-01,1.145782e-01,4.779205e-01,4.167175e-02,4.341888e-01,9.901581e-01,3.171692e-01,7.043610e-01,5.943451e-01,1.153564e-01,6.334229e-01,1.943970e-02,9.347534e-02,4.218903e-01,6.242218e-01,5.945435e-01,2.910767e-01,7.147217e-02,9.419250e-02,6.159515e-01,2.242737e-01,2.211761e-01,7.854919e-01,4.057007e-01,1.611786e-01,5.952454e-01,7.899017e-01,1.980743e-01,3.591919e-01,2.873688e-01,1.469879e-01,5.140991e-01,4.028168e-01,6.126556e-01,8.999939e-01,7.686005e-01,5.665894e-01,6.466675e-02,1.825256e-01,9.958801e-01,5.572510e-01,8.549957e-01,3.482819e-01,6.862488e-01,9.580078e-01,7.326355e-01,9.788666e-01,9.241333e-01,1.396484e-01,5.667877e-01,7.684937e-01,6.311340e-01,3.292694e-01,8.716125e-01,9.767456e-01,7.940521e-01,6.597137e-01,8.386230e-01,7.594604e-01,2.954407e-01,9.179535e-01,5.328064e-01,5.441437e-01,6.523743e-01,6.199951e-01,2.357025e-01,5.353088e-01,9.429932e-01,1.087799e-01,2.153473e-01,5.900269e-01,6.376495e-01,3.076477e-01,8.865356e-03,7.466736e-01,4.722595e-01,4.052734e-01,2.957153e-01,4.005432e-02,1.823425e-02,4.212341e-01,3.660583e-01,6.239777e-01,5.012512e-01,7.828522e-01,8.383636e-01,5.187073e-01,2.427673e-01,1.053772e-01,9.653931e-01,6.904907e-01,5.433197e-01,8.468475e-01,4.920807e-01,8.335876e-01,7.297668e-01,3.934631e-01,8.564453e-01,4.764862e-01,4.916534e-01,1.918945e-01,7.780457e-01,4.459991e-01,7.672729e-01,7.850189e-01,3.752136e-01,6.713409e-01,9.122162e-01,1.002197e-01,9.092407e-01,3.853455e-01,9.062500e-01,3.130493e-01,2.243347e-01,9.452209e-01,3.643951e-01,6.172180e-02,6.633911e-01,6.248932e-01,2.441559e-01,6.810303e-01,9.330292e-01,2.845764e-01,4.268341e-01,3.677673e-01,7.566833e-01,6.076050e-01,6.999054e-01,6.392822e-01,7.529449e-01,7.569885e-02,1.480865e-01,7.228699e-01,9.041748e-01,1.201172e-01,2.143097e-01,7.857971e-01,5.714874e-01,1.666412e-01,3.825073e-01,6.120453e-01,2.149658e-01,1.944122e-01,2.281494e-01,9.461060e-01,7.487488e-02,7.159271e-01,7.939758e-01,3.367615e-01,3.357086e-01,7.490540e-02,7.100983e-01,8.259888e-01,8.866882e-01,7.662659e-01,5.193787e-01,6.359558e-01,2.966766e-01,3.926086e-02,6.667480e-01,4.347992e-01,1.279755e-01,9.044800e-01,2.178955e-02,8.777313e-01,6.823883e-01,6.533813e-01,8.023529e-01,4.628754e-01,9.486694e-01,4.229126e-01,6.107025e-01,1.281738e-03,4.673004e-01,3.361206e-01,5.159302e-01,8.167877e-01,5.151520e-01,5.837402e-01,4.237671e-01,3.037872e-01,8.759460e-01,9.551239e-01,1.995697e-01,8.345490e-01,9.468689e-01,7.872314e-01,3.065796e-01,8.744507e-01,8.251953e-01,3.969574e-01,9.558411e-01,9.012146e-01,6.553650e-01,8.847809e-01,1.385498e-02,2.472687e-01,6.416779e-01,1.006622e-01,8.004608e-01,4.255524e-01,4.899902e-01,3.174744e-01,8.505249e-02,2.882233e-01,7.796936e-01,5.459290e-01,8.737488e-01,9.923706e-01,4.288483e-01,2.061157e-01,3.172607e-01,6.068420e-01,2.402954e-01,3.133087e-01,9.219208e-01,7.510376e-01,4.060974e-01,9.976807e-01,6.342010e-01,2.687531e-01,4.837036e-02,2.378387e-01,9.915466e-01,5.967560e-01,1.218262e-01,9.070282e-01,2.119751e-01,4.527283e-01,4.224548e-01,8.378601e-01,1.261902e-01,7.321320e-01,7.173920e-01,4.770508e-01,7.383270e-01,1.708069e-01,2.923584e-02,7.621307e-01,2.743683e-01,5.956726e-01,7.408142e-02,9.862518e-01,6.280975e-01,4.087219e-01,4.293213e-01,8.850403e-01,3.027496e-01,6.058807e-01,5.789185e-01,6.092224e-01,7.108459e-01,4.124451e-02,8.083649e-01,1.728210e-01,5.087280e-02,7.632599e-01,7.111359e-01,6.958771e-01,9.646606e-01,7.699738e-01,4.675598e-01,6.578064e-01,8.111725e-01,5.443726e-01,6.878510e-01,9.227142e-01,5.574493e-01,6.056824e-01,7.243500e-01,8.001709e-02,4.124756e-01,1.744690e-01,5.765991e-01,7.155457e-01,3.758698e-01,9.384766e-01,9.859619e-01,2.927246e-01,1.030731e-01,6.076355e-01,2.435913e-01,8.767395e-01,4.860229e-01,1.586914e-02,2.734375e-01,4.477386e-01,8.850098e-04,1.385345e-01,2.085876e-01,2.679443e-02,6.719971e-02,9.380188e-01,3.189392e-01,9.589691e-01,4.011383e-01,4.469910e-01,1.324463e-01,5.676727e-01,7.405853e-01,5.274506e-01,3.817749e-01,8.406525e-01,5.065308e-01,9.299164e-01,8.072510e-01,4.084473e-01,1.494293e-01,8.798065e-01,1.430817e-01,7.194061e-01,1.734161e-01,4.869385e-01,4.006348e-01,6.594849e-02,8.673553e-01,3.947296e-01,3.913879e-02,1.950989e-01,6.062317e-01,1.716614e-02,8.526001e-01,1.069183e-01,7.313538e-02,8.672791e-01,5.041504e-01,9.648132e-01,4.353180e-01,3.052826e-01,6.361542e-01,7.056580e-01,9.220886e-01,7.110596e-03,3.356934e-02,4.384308e-01,9.382172e-01,6.345215e-01,8.977966e-01,3.418884e-01,7.185211e-01,6.426544e-01,3.548279e-01,5.431213e-01,8.807678e-01,4.228516e-01,5.344849e-01,5.198975e-01,3.340607e-01,9.570007e-01,1.519165e-01,8.300476e-01,7.382812e-01,6.190491e-01,8.025055e-01,3.976288e-01,1.245422e-01,7.070923e-01,1.851196e-01,6.352234e-01,6.553040e-01,7.502441e-01,8.144073e-01,8.859253e-02,4.011993e-01,6.883087e-01,9.803925e-01,5.366058e-01,7.043762e-01,9.120789e-01,2.693481e-01,3.757782e-01,1.888275e-01,5.434570e-01,8.936920e-01,2.864685e-01,9.813232e-01,7.747498e-01,3.447266e-01,9.038391e-01,8.610840e-01,8.899841e-01,3.444519e-01,4.331818e-01,8.451996e-01,6.129456e-02,3.059998e-01,1.349030e-01,7.926941e-01,8.762817e-01,6.175842e-01,7.281342e-01,9.682922e-01,4.477692e-01,1.933899e-01,4.728851e-01,3.616180e-01,3.519135e-01,4.266815e-01,6.695099e-01,8.953247e-01,4.901123e-01,4.161682e-01,5.665588e-02,9.603271e-01,4.750824e-01,4.097290e-01,8.111267e-01,2.469177e-01,2.238464e-01,1.538849e-01,7.622070e-01,6.338348e-01,6.113586e-01,4.871216e-01,6.204071e-01,1.026611e-01,3.374634e-01,6.400146e-01,1.230621e-01,2.465820e-02,3.528748e-01,6.761627e-01,1.544647e-01,9.103088e-01,6.139984e-01,2.778625e-02,8.264313e-01,6.308289e-01,4.676208e-01,2.464294e-02,4.297180e-01,2.221832e-01,6.570435e-02,8.172455e-01,8.804779e-01,6.220703e-01,7.049561e-01,3.471832e-01,7.233734e-01,2.801208e-01,4.436951e-01,6.988068e-01,1.209259e-01,7.801208e-01,7.797699e-01,6.262817e-01,8.901672e-01,2.272339e-01,3.899689e-01,2.425079e-01,2.414246e-01,8.426208e-01,9.000397e-01,9.610443e-01,8.578796e-01,1.516266e-01,4.619293e-01,5.524902e-01,9.625549e-01,1.283875e-01,2.742004e-01,5.460052e-01,7.010651e-01,9.844208e-01,2.913818e-01,5.983582e-01,5.059509e-01,6.932678e-01,3.399506e-01,8.871307e-01,7.704163e-01,7.444763e-01,1.592712e-01,3.967590e-01,4.821167e-01,9.323730e-01,1.220703e-03,2.282104e-01,8.892365e-01,6.451263e-01,3.978882e-01,7.148590e-01,1.643372e-01,6.086731e-02,8.350677e-01,2.905884e-01,4.430389e-01,7.220459e-01,7.938080e-01,2.685699e-01,4.757538e-01,3.290405e-01,4.762573e-01,1.454926e-01,1.216431e-01,8.805542e-01,5.119324e-02,1.608124e-01,3.603363e-01,9.167786e-01,4.250793e-01,2.774048e-01,2.597046e-02,4.608154e-01,3.555145e-01,7.106781e-01,8.443146e-01,6.847076e-01,2.532959e-01,2.083282e-01,4.829712e-01,7.424011e-01,1.142578e-01,7.940216e-01,4.720306e-01,4.489136e-02,3.949585e-01,8.483429e-01,3.495026e-01,6.322021e-01,7.565155e-01,3.843536e-01,4.318695e-01,1.059113e-01,2.127228e-01,2.424011e-01,5.771637e-01,5.229034e-01,9.571838e-01,8.806915e-01,6.561127e-01,4.466248e-01,6.637573e-01,9.229736e-01,4.030609e-01,5.482483e-02,3.419495e-01,3.841095e-01,1.954193e-01,4.804993e-02,9.387665e-01,4.476929e-01,4.201355e-01,5.510864e-01,3.779297e-01,3.534546e-01,8.102875e-01,8.383789e-01,5.549622e-02,6.810150e-01,8.374939e-01,1.978760e-01,9.764252e-01,7.959900e-01,5.098877e-01,9.889984e-01,2.307434e-01,4.202881e-01,6.921844e-01,3.428650e-01,5.243073e-01,7.601318e-01,9.274292e-01,7.298126e-01,2.844391e-01,6.049347e-01,9.733887e-01,9.532318e-01,2.402039e-01,2.970276e-01,5.236511e-01,7.657928e-01,6.366882e-01,1.398621e-01,7.081909e-01,9.237671e-01,2.780914e-01,5.259247e-01,2.237244e-01,5.979614e-01,3.339996e-01,3.214111e-01,9.059906e-01,1.059265e-01,8.464661e-01,6.319275e-01,3.580017e-01,9.173431e-01,8.003693e-01,2.186737e-01,4.560852e-02,4.137878e-01,8.906555e-01,6.087799e-01,5.551758e-01,3.572235e-01,1.042328e-01,2.682648e-01,7.571411e-01,9.703979e-01,1.953125e-02,5.630188e-01,3.059845e-01,8.171844e-01,8.844147e-01,9.313965e-02,9.352875e-01,3.760529e-01,9.860229e-01,4.786835e-01,3.472748e-01,4.541473e-01,8.314514e-01,8.287201e-01,3.884888e-02,5.719299e-01,6.620789e-01,4.479370e-01,5.335999e-02,9.572754e-01,6.782684e-01,8.667908e-01,3.912201e-01,5.765839e-01,4.805450e-01,6.397858e-01,3.233185e-01,9.145203e-01,2.181091e-01,9.482422e-01,1.236725e-01,2.687683e-01,8.631897e-01,4.114685e-01,5.308228e-01,9.953613e-01,3.522339e-01,7.213593e-01,4.103546e-01,7.971802e-01,8.598785e-01,7.769775e-01,9.556274e-01,5.786285e-01,4.586182e-01,7.124939e-01,5.837555e-01,5.253296e-01,2.591705e-01,9.107056e-01,3.789368e-01,8.747559e-01,8.339539e-01,5.470581e-01,8.707123e-01,6.001129e-01,8.618622e-01,1.283264e-01,4.192352e-01,2.184296e-01,6.668854e-01,1.212921e-01,1.373444e-01,7.014771e-01,4.721222e-01,9.046478e-01,8.620300e-01,9.910278e-01,8.988647e-01,9.010315e-01,3.996277e-02,4.479523e-01,4.278870e-01,3.985901e-01,8.549500e-02,6.933899e-01,5.069427e-01,4.516907e-01,3.960419e-01,7.473755e-01,7.626343e-02,9.981689e-01,9.941101e-02,1.927185e-01,8.647461e-01,2.494812e-02,8.390961e-01,9.218445e-01,9.208984e-01,8.489990e-02,8.653564e-01,7.172852e-01,1.208496e-02,2.962494e-01,9.107056e-01,1.102905e-01,6.583099e-01,4.362946e-01,5.642700e-01,3.898621e-02,8.088837e-01,4.333954e-01,2.287445e-01,5.953064e-01,3.129578e-02,2.150574e-01,5.541382e-01,7.786560e-02,8.145599e-01,7.192688e-01,1.719666e-01,5.212097e-01,2.656555e-02,4.493866e-01,8.588715e-01,3.268890e-01,4.482574e-01,1.757660e-01,8.290100e-01,1.605225e-02,1.939240e-01,8.004303e-01,4.362488e-01,9.969940e-01,7.727966e-01,5.040283e-01,4.541016e-02,8.947449e-01,9.247437e-01,6.835175e-01,5.599976e-03,1.836243e-01,4.594421e-01,2.309265e-01,9.904480e-01,7.130890e-01,1.427002e-01,7.150879e-01,3.156128e-01,4.700928e-01,4.270935e-01,4.328003e-01,7.906647e-01,3.320312e-02,3.373260e-01,6.117096e-01,6.607971e-01,2.498474e-01,4.237976e-01,7.973022e-01,9.572754e-01,3.708344e-01,9.045410e-01,7.226562e-02,2.155457e-01,9.070892e-01,3.405762e-02,9.822998e-01,5.726624e-01,2.151489e-01,6.451874e-01,2.500610e-01,8.080139e-01,2.861633e-01,8.374023e-01,3.992462e-01,3.451691e-01,5.514984e-01,2.075043e-01,7.317352e-01,9.954834e-02,6.925659e-01,3.468323e-02,3.241577e-01,1.510620e-03,3.223419e-01,1.150818e-01,8.432007e-02,4.694214e-01,7.310791e-01,9.036865e-01,7.614594e-01,8.356628e-01,4.766693e-01,7.678833e-01,5.852966e-01,4.561615e-01,1.358032e-03,9.642792e-01,6.851654e-01,1.776428e-01,8.247986e-01,3.580475e-01,2.487488e-01,1.407166e-01,6.266937e-01,5.140839e-01,8.664398e-01,2.887573e-01,4.813080e-01,8.139648e-01,9.591675e-01,8.821716e-01,5.827332e-02,6.987000e-01,5.720520e-02,4.768982e-01,4.257202e-02,9.760590e-01,6.356964e-01,8.817749e-01,1.875458e-01,7.100983e-01,4.692688e-01,8.798828e-01,2.359009e-02,6.650391e-01,4.832306e-01,5.129547e-01,3.533020e-01,7.619781e-01,7.702484e-01,9.534302e-01,6.803284e-01,6.859436e-01,7.576294e-01,1.511078e-01,2.066040e-01,8.461914e-01,6.500854e-01,1.138306e-02,6.522064e-01,7.014313e-01,4.285431e-01,9.379272e-01,3.221588e-01,4.049683e-01,8.374786e-01,5.518188e-01,9.068604e-01,8.163300e-01,6.816406e-01,4.405365e-01,2.390137e-01,8.888855e-01,4.626923e-01,5.018616e-02,8.954468e-01,2.120972e-01,2.569122e-01,2.839355e-01,6.753693e-01,5.529022e-01,9.083710e-01,1.980591e-02,3.075104e-01,1.744232e-01,1.142883e-01,5.665131e-01,2.407837e-02,5.340576e-04,1.407928e-01,2.432251e-01,1.620178e-01,6.164246e-01,5.136566e-01,2.483673e-01,4.406433e-01,2.724609e-01,2.107239e-01,9.139404e-01,5.885162e-01,9.886322e-01,8.544922e-02,4.766846e-01,3.262329e-01,2.983551e-01,9.922485e-01,8.549957e-01,5.626526e-01,8.349152e-01,8.532715e-01,3.442535e-01,4.398956e-01,4.917297e-01,3.514252e-01,3.369141e-02,7.118378e-01,7.117615e-01,1.582336e-01,5.206757e-01,4.375610e-01,4.396210e-01,9.008789e-01,4.598389e-01,7.539825e-01,6.514740e-01,6.138458e-01,4.765320e-02,3.412170e-01,1.614685e-01,8.528137e-02,1.053314e-01,5.341644e-01,2.164154e-01,5.966797e-01,1.060333e-01,2.292175e-01,7.881775e-01,3.595581e-01,8.717651e-01,2.266388e-01,2.503204e-01,4.460449e-01,1.098633e-02,5.661011e-03,9.425659e-01,6.173859e-01,6.954193e-01,2.112427e-01,1.332397e-01,8.746338e-02,1.931763e-02,4.321594e-01,5.238037e-01,5.896759e-01,9.394989e-01,5.657959e-01,6.212463e-01,7.761078e-01,3.160706e-01,5.820618e-01,4.482574e-01,1.141357e-01,4.797821e-01,4.736633e-01,7.289429e-01,2.450562e-02,2.775421e-01,3.259277e-02,3.726654e-01,9.863892e-01,5.925751e-01,9.749756e-01,9.328308e-01,2.012634e-01,2.323456e-01,1.249390e-01,1.725769e-02,7.995300e-01,6.459808e-01,2.976532e-01,9.007263e-01,4.348755e-03,6.874084e-01,7.882385e-01,8.300018e-01,1.807251e-01,8.928986e-01,1.194000e-01,3.777618e-01,8.547821e-01,7.072601e-01,4.729614e-01,9.820404e-01,9.811249e-01,1.761780e-01,9.850922e-01,8.115692e-01,6.810760e-01,2.274170e-01,8.347931e-01,7.087555e-01,5.485382e-01,6.281128e-01,4.924011e-02,3.668365e-01,9.125214e-01,3.140564e-01,3.649597e-01,3.502808e-01,6.820679e-01,5.455017e-01,6.062775e-01,5.747986e-01,5.006866e-01,7.934875e-01,1.950531e-01,9.447632e-01,7.066498e-01,9.910736e-01,5.938721e-02,7.443085e-01,1.070099e-01,7.104187e-01,3.168945e-01,4.869080e-01,8.864136e-01,3.871613e-01,8.343201e-01,4.427338e-01,2.384491e-01,9.407654e-01,6.377563e-01,1.624451e-01,4.659729e-01,8.784485e-01,7.635651e-01,4.987488e-01,5.055237e-01,3.638000e-01,9.331360e-01,1.771851e-01,8.384705e-01,4.263458e-01,5.717926e-01,1.587219e-01,5.112457e-01,7.173920e-01,5.996704e-03,1.515961e-01,1.121521e-02,1.028595e-01,6.399231e-01,9.701996e-01,5.807037e-01,1.199951e-01,4.309845e-01,3.833160e-01,2.700806e-03,6.973419e-01,6.352234e-01,5.846558e-01,2.111053e-01,5.328979e-01,4.904327e-01,8.440704e-01,8.712769e-02,6.920471e-01,7.910919e-01,8.404236e-01,9.505005e-01,9.516296e-01,7.547760e-01,3.280029e-01,7.457581e-01,1.342773e-02,7.600403e-02,8.539886e-01,9.054260e-01,8.759918e-01,5.245209e-01,9.977875e-01,5.243530e-01,7.521667e-01,2.833557e-02,7.918091e-01,3.099365e-01,4.501648e-01,1.285095e-01,4.449005e-01,6.742859e-02,8.348694e-01,3.502045e-01,9.422607e-01,5.444946e-01,1.984406e-01,1.302948e-01,7.086182e-02,6.544647e-01,4.730225e-01,4.398346e-01,6.152649e-01,3.529358e-01,1.035309e-01,9.454956e-01,6.561279e-01,8.557587e-01,7.519531e-02,6.013641e-01,9.774475e-01,2.632141e-02,8.093872e-01,9.244995e-01,3.111267e-01,9.645996e-01,9.692993e-01,5.996094e-01,1.178741e-01,1.685333e-01,2.687225e-01,7.024384e-01,2.452393e-01,3.045197e-01,2.275391e-01,7.717590e-01,7.813416e-01,3.476410e-01,2.753754e-01,5.014191e-01,7.436523e-01,1.789551e-01,3.070374e-01,8.692780e-01,3.827057e-01,5.449982e-01,7.491608e-01,2.667084e-01,2.187195e-01,9.526062e-01,6.698914e-01,1.039124e-02,1.886749e-01,7.138824e-01,2.300262e-01,2.675323e-01,6.093903e-01,8.619080e-01,4.399872e-01,2.621307e-01,4.137421e-01,5.079193e-01,4.932251e-01,7.146759e-01,9.769897e-01,8.670349e-01,4.246979e-01,4.374390e-01,2.131348e-01,3.073273e-01,2.036438e-01,3.759003e-01,5.422211e-01,2.825470e-01,9.763794e-01,8.729553e-02,2.200928e-01,8.075867e-01,9.610901e-01,5.150146e-01,3.769073e-01,5.080109e-01,9.454651e-01,8.993835e-01,9.874725e-01,9.330292e-01,3.608398e-01,5.410156e-01,7.458954e-01,5.121918e-01,3.792572e-01,3.145294e-01,9.573364e-01,8.274536e-01,8.976746e-01,1.021423e-01,7.800903e-01,6.322632e-01,1.570129e-01,9.122314e-01,8.070068e-01,6.630402e-01,3.561249e-01,8.063049e-01,7.700195e-01,1.826172e-01,3.500977e-01,6.028290e-01,3.997803e-03,8.254242e-01,5.332489e-01,4.101410e-01,7.299805e-01,4.604340e-01,6.353912e-01,8.892212e-01,4.723663e-01,5.640869e-01,8.517151e-01,5.803375e-01,5.696869e-01,5.882874e-01,4.069214e-01,3.082733e-01,3.826447e-01,3.153229e-01,1.604614e-01,3.382874e-02,9.101868e-02,9.797974e-01,2.808380e-01,3.639984e-01,5.764923e-01,2.030945e-01,6.446838e-01,8.669434e-01,4.240570e-01,2.151489e-02,6.026001e-01,5.641785e-01,7.681885e-01,5.384369e-01,5.663147e-01,4.105682e-01,1.731110e-01,1.296844e-01,5.138550e-01,7.376251e-01,5.886841e-02,9.920654e-01,5.214081e-01,7.933502e-01,9.558563e-01,5.942688e-01,5.823669e-01,7.069397e-02,4.031219e-01,5.991516e-01,8.111572e-01,6.406555e-01,2.822876e-01,6.935883e-01,5.428314e-01,8.881378e-01,2.406158e-01,2.498016e-01,7.971191e-02,5.425262e-01,4.028931e-01,1.603394e-01,1.338806e-01,7.856750e-01,4.013367e-01,4.874725e-01,5.709839e-02,8.783417e-01,7.381134e-01,8.206329e-01,3.952179e-01,1.603394e-01,7.804871e-01,7.748260e-01,7.551422e-01,8.380127e-01,6.639099e-02,1.193695e-01,8.857727e-01,4.367523e-01,7.292938e-01,6.497040e-01,7.102661e-01,7.279358e-01,9.762878e-01,2.103119e-01,8.511353e-01,6.864319e-01,9.448853e-01,4.128876e-01,6.396332e-01,8.792114e-01,4.272461e-03,7.801971e-01,5.800781e-01,3.616180e-01,9.853516e-01,3.019714e-02,4.358673e-01,3.662262e-01,5.285492e-01,1.000824e-01,3.966522e-01,9.062500e-01,8.219147e-01,9.459839e-01,3.569031e-02,9.139404e-01,3.467865e-01,3.900909e-01,1.466064e-01,5.755768e-01,9.335938e-01,9.343262e-01,3.617859e-02,3.777466e-01,7.275543e-01,1.250763e-01,2.086639e-01,4.844208e-01,3.401184e-02,3.440552e-01,2.684631e-01,3.023834e-01,3.394318e-01,3.296814e-01,7.890015e-01,2.173615e-01,4.273987e-01,8.586121e-01,3.737793e-01,2.003326e-01,8.298798e-01,2.253418e-01,1.026764e-01,4.325867e-02,2.715454e-01,6.758728e-01,1.661377e-01,5.662994e-01,4.274902e-01,3.517151e-02,1.008301e-01,1.180420e-01,6.022949e-01,3.837128e-01,2.579651e-01,8.293762e-01,1.072693e-02,1.613922e-01,3.468628e-01,2.617188e-01,3.699646e-01,1.656189e-01,5.911713e-01,3.573761e-01,6.654358e-02,5.188751e-01,5.279846e-01,2.835846e-01,2.847443e-01,8.283844e-01,2.719421e-01,2.598267e-01,5.563507e-01,8.361664e-01,5.799713e-01,4.197235e-01,1.960449e-01,6.622620e-01,7.719421e-01,7.639771e-01,1.029968e-01,2.652740e-01,2.134399e-01,2.316589e-01,3.338776e-01,9.302979e-01,8.631897e-02,6.025391e-01,5.464172e-01,4.278717e-01,9.099579e-01,7.168427e-01,3.102417e-01,3.853912e-01,9.180603e-01,4.927063e-02,5.783539e-01,1.426086e-01,6.991425e-01,8.785553e-01,2.743683e-01,1.716003e-01,1.395416e-01,4.271698e-01,5.300598e-01,5.297699e-01,5.557404e-01,6.564636e-01,8.605957e-02,5.265656e-01,3.856964e-01,6.260986e-01,1.377869e-02,4.738007e-01,8.566589e-01,5.947723e-01,9.693451e-01,6.277466e-02,5.472565e-01,8.143311e-01,6.632690e-01,3.981934e-01,8.689575e-01,2.354279e-01,5.991211e-01,9.515381e-02,2.080383e-01,8.505707e-01,5.957031e-02,6.893311e-01,4.381409e-01,1.795044e-01,1.524811e-01,3.839569e-01,4.779663e-01,8.347321e-01,1.988983e-01,8.720245e-01,5.520630e-02,2.545471e-01,8.810272e-01,1.882477e-01,2.725220e-01,2.457733e-01,7.821655e-01,6.998596e-01,7.032318e-01,7.322845e-01,3.082123e-01,9.539185e-01,9.834442e-01,5.245514e-01,6.022644e-01,6.580963e-01,5.830383e-02,6.216278e-01,4.459076e-01,5.327759e-01,1.621552e-01,3.784637e-01,3.445435e-02,7.596588e-01,4.503479e-01,1.038055e-01,3.078766e-01,4.901733e-01,8.522034e-01,8.994598e-01,6.197205e-01,4.658203e-01,8.561096e-01,8.899689e-01,7.645569e-01,8.083801e-01,6.290131e-01,5.457611e-01,4.491119e-01,4.601593e-01,2.077179e-01,6.340027e-02,5.862885e-01,7.820129e-01,7.647705e-01,1.877289e-01,7.302399e-01,4.389343e-01,9.772339e-01,8.349762e-01,9.000854e-01,9.697266e-01,7.010345e-01,2.094269e-01,9.249268e-01,8.331604e-01,9.578247e-01,1.824951e-01,2.196960e-01,9.176025e-01,2.629700e-01,8.309174e-01,3.172150e-01,4.575806e-01,5.995026e-01,3.603363e-01,4.866486e-01,2.541046e-01,8.595886e-01,9.277039e-01,3.049469e-01,4.483032e-01,7.162933e-01,8.076172e-01,2.528076e-01,1.669617e-01,7.381744e-01,5.543823e-01,4.388885e-01,4.371643e-02,7.169037e-01,6.748199e-01,7.281952e-01,1.819763e-01,4.107056e-01,7.946167e-01,1.415558e-01,1.442108e-01,2.212067e-01,6.470184e-01,7.395020e-01,9.035034e-01,1.323700e-01,5.442200e-01,4.238434e-01,7.406158e-01,3.527679e-01,6.486511e-02,3.457489e-01,3.126373e-01,4.053497e-01,5.303802e-01,5.415344e-02,2.125854e-01,3.724060e-01,9.236145e-02,7.327576e-01,6.821442e-01,8.649292e-01,5.272064e-01,7.464600e-01,5.071106e-01,8.491516e-01,5.512390e-01,2.115173e-01,1.867981e-01,2.929688e-01,4.855652e-01,3.625488e-01,4.914551e-01,5.953674e-01,1.659088e-01,9.876556e-01,6.401062e-02,6.304779e-01,5.975189e-01,7.718353e-01,3.544769e-01,6.598816e-01,6.836395e-01,8.322906e-01,5.654602e-01,6.755066e-02,8.316040e-02,4.345703e-02,7.925415e-02,8.981934e-01,4.541473e-01,1.812897e-01,2.602234e-01,9.807129e-01,2.393188e-01,5.368042e-02,6.022644e-02,7.827759e-03,8.760529e-01,2.618408e-02,7.326965e-01,4.878845e-01,7.186584e-01,2.895966e-01,1.416016e-01,4.752808e-01,9.052124e-01,2.985382e-01,9.936523e-01,4.498901e-01,5.183563e-01,7.537842e-02,3.593445e-01,9.041748e-01,3.348694e-01,1.899872e-01,1.136322e-01,9.631805e-01,3.952179e-01,3.600159e-01,2.886963e-02,2.721558e-01,3.990631e-01,4.237366e-02,8.770142e-01,7.149658e-01,2.398071e-01,4.785156e-01,6.696014e-01,6.952972e-01,4.840698e-01,4.074402e-01,1.560669e-01,3.943787e-01,8.818512e-01,9.992676e-01,3.924561e-02,4.660339e-01,7.270813e-02,9.857178e-01,6.671143e-01,9.551392e-01,5.094147e-01,3.686523e-02,4.915466e-01,2.293091e-01,7.217865e-01,7.389832e-01,6.976929e-01,6.466980e-01,5.530396e-01,6.698151e-01,6.390381e-02,5.392303e-01,3.778839e-01,2.094116e-01,1.968689e-01,6.901703e-01,8.648987e-01,7.040558e-01,5.789490e-01,4.798889e-02,3.056335e-01,6.448517e-01,7.664490e-02,8.974304e-01,5.022888e-01,4.411926e-01,9.947815e-01,9.868164e-01,2.120361e-01,6.696930e-01,2.288818e-01,4.747925e-01,2.639313e-01,3.439178e-01,5.204163e-01,4.303131e-01,9.772949e-01,9.215088e-01,9.849548e-02,6.047668e-01,1.847076e-01,4.589691e-01,5.359039e-01,5.469055e-01,1.018066e-01,2.319183e-01,6.022339e-01,1.162720e-01,3.600159e-01,9.907837e-01,9.614563e-01,3.221283e-01,3.131104e-02,7.423859e-01,3.262329e-01,5.741577e-01,7.788086e-01,5.364685e-01,3.306427e-01,5.670166e-02,6.280823e-01,4.681091e-01,7.827148e-01,1.248779e-01,3.440857e-02,5.305023e-01,3.783112e-01,1.437683e-01,6.943359e-01,6.178436e-01,9.276428e-01,5.633698e-01,2.376404e-01,4.113770e-01,6.011963e-03,5.121460e-01,3.636017e-01,4.497681e-01,8.811035e-01,4.811554e-01,9.743500e-01,3.911133e-01,5.551758e-01,6.204987e-01,4.308929e-01,4.291687e-01,2.301331e-01,2.978668e-01,3.646545e-01,9.263611e-01,5.478058e-01,4.570618e-01,1.773529e-01,2.989197e-02,7.035675e-01,1.978760e-01,6.124725e-01,3.769684e-01,1.892090e-03,6.524658e-02,7.753906e-01,4.863586e-01,8.031158e-01,9.067841e-01,2.856293e-01,1.711731e-01,2.223358e-01,9.945374e-01,6.929626e-01,1.785126e-01,1.817627e-01,7.356873e-01,9.361572e-01,4.526672e-01,7.444153e-01,1.506500e-01,1.699829e-01,1.361694e-01,6.246490e-01,7.487488e-01,8.311462e-01,7.002869e-01,3.683472e-01,8.790588e-02,5.815125e-01,1.976776e-01,6.611328e-01,1.362152e-01,9.483032e-01,4.519653e-02,7.581940e-01,1.154022e-01,4.029541e-01,4.486847e-01,7.029114e-01,8.750916e-02,4.698334e-01,2.326965e-01,8.813477e-01,3.783417e-01,2.619934e-01,1.058350e-01,7.602844e-01,6.509399e-01,3.778839e-01,1.990204e-01,6.470184e-01,9.291077e-02,5.355835e-02,1.108398e-01,4.900665e-01,3.330536e-01,5.303192e-01,7.481384e-02,2.407074e-01,8.869934e-01,4.235382e-01,5.608215e-01,5.369568e-02,6.364899e-01,8.459015e-01,1.810913e-01,5.297852e-02,4.850464e-01,3.537750e-01,4.048462e-01,4.381104e-01,4.926910e-01,6.629791e-01,4.492340e-01,7.128448e-01,5.294952e-01,3.620300e-01,5.565033e-01,7.471771e-01,2.426147e-02,1.797791e-01,6.603546e-01,7.776031e-01,8.468628e-01,4.450531e-01,2.492828e-01,1.357269e-01,9.415131e-01,7.594299e-01,7.303772e-01,4.710083e-01,4.153290e-01,2.887115e-01,7.600708e-01,8.183289e-02,8.325043e-01,5.356140e-01,9.447021e-01,9.375305e-01,8.692932e-01,2.066040e-02,1.706848e-01,6.901703e-01,6.367798e-01,4.551697e-01,5.263672e-01,1.176300e-01,2.030945e-02,3.978119e-01,2.609558e-01,1.012115e-01,6.148224e-01,2.105408e-01,1.814270e-02,7.548828e-01,4.756317e-01,4.764557e-01,1.623840e-01,3.285065e-01,9.961243e-01,8.094025e-01,6.108093e-02,3.229828e-01,2.517395e-01,4.163818e-01,6.618958e-01,7.721558e-01,5.419922e-01,5.846405e-01,9.033051e-01,5.002899e-01,7.871246e-01,4.388428e-02,3.857880e-01,7.284241e-01,9.884644e-02,6.344299e-01,1.110840e-02,3.796844e-01,6.768188e-01,4.223022e-01,5.244598e-01,7.185516e-01,8.861542e-01,4.655457e-01,2.782135e-01,3.242493e-02,4.865417e-01,6.123352e-02,2.226257e-01,5.050659e-01,1.947479e-01,7.604523e-01,7.213593e-01,1.346436e-01,1.782837e-01,3.591614e-01,5.242767e-01,6.400452e-01,5.158234e-01,5.778961e-01,7.126007e-01,5.372925e-01,1.175079e-01,1.454620e-01,8.538513e-01,8.162384e-01,5.474701e-01,9.715271e-02,4.508972e-02,3.357544e-01,8.800201e-01,9.364014e-01,7.611237e-01,5.290222e-01,9.490967e-01,4.726715e-01,8.255463e-01,5.573883e-01,4.491272e-01,2.035522e-02,6.762848e-01,4.076996e-01,4.364319e-01,4.465790e-01,7.383575e-01,4.065857e-01,4.801788e-01,3.338776e-01,3.994904e-01,9.001465e-01,5.405731e-01,1.006775e-01,7.921600e-01,2.776031e-01,3.876190e-01,4.391327e-01,9.246826e-03,1.622925e-01,9.692993e-01,7.169495e-01,3.212891e-01,9.078979e-02,2.603149e-01,1.056366e-01,6.124115e-01,3.895569e-01,2.488556e-01,4.803467e-01,9.726562e-01,9.497528e-01,3.634949e-01,4.149323e-01,5.377350e-01,2.061005e-01,6.414185e-01,7.261810e-01,6.502533e-01,1.702423e-01,8.506927e-01,8.263855e-01,8.246765e-01,5.982666e-01,9.340820e-01,5.549622e-02,1.543884e-01,4.776001e-03,4.302826e-01,8.137970e-01,3.287354e-01,4.571686e-01,9.421844e-01,6.938782e-01,4.044495e-01,5.105286e-01,9.600067e-01,1.716919e-01,8.012695e-01,6.347504e-01,4.276123e-01,2.321320e-01,8.180847e-01,7.617798e-01,9.711304e-01,4.807587e-01,4.425049e-03,1.825104e-01,3.958893e-01,3.397064e-01,4.545135e-01,9.034424e-01,7.794189e-01,8.116302e-01,5.249634e-01,6.729584e-01,4.033203e-01,6.671600e-01,6.008759e-01,2.590637e-01,4.614716e-01,1.570740e-01,3.074799e-01,3.878479e-01,5.214539e-01,5.284424e-01,3.738098e-01,6.030121e-01,3.156738e-01,1.649475e-02,9.908752e-01,6.635284e-01,1.638947e-01,7.847443e-01,4.413452e-01,1.148071e-01,7.656250e-01,7.531738e-01,5.761871e-01,6.156921e-02,9.442139e-01,6.838379e-01,7.416077e-01,4.671783e-01,8.544464e-01,1.929779e-01,5.282593e-01,1.019135e-01,1.664276e-01,3.054962e-01,1.335144e-02,7.497864e-01,7.138214e-01,3.447266e-01,5.760803e-01,6.689301e-01,7.110138e-01,7.503510e-01,5.789185e-01,9.053040e-01,5.186920e-01,2.520752e-02,6.768036e-01,2.151184e-01,5.531921e-01,2.078400e-01,3.488007e-01,2.540588e-02,6.115265e-01,6.848297e-01,5.594635e-01,1.908112e-01,9.709167e-01,7.734375e-01,7.844543e-01,6.510010e-01,8.550568e-01,5.239868e-01,7.255707e-01,5.324554e-01,3.453064e-02,3.390656e-01,2.470398e-02,5.691071e-01,6.747437e-02,8.822632e-01,7.046051e-01,8.950653e-01,8.227386e-01,4.551392e-01,8.163300e-01,3.105621e-01,2.746582e-04,2.918243e-01,6.138153e-01,3.731384e-01,6.034546e-01,4.649353e-02,4.729614e-01,3.707886e-03,6.370850e-01,6.613770e-01,7.501373e-01,7.741852e-01,6.079102e-01,6.322937e-01,2.610626e-01,5.266418e-01,4.162140e-01,2.396545e-01,8.172302e-01,9.317474e-01,7.573547e-01,3.890533e-01,6.481018e-01,4.180908e-03,1.628723e-01,5.997925e-01,9.009857e-01,1.531372e-01,2.299500e-02,6.727905e-01,6.978149e-01,7.475586e-01,8.316650e-01,7.020264e-01,1.426086e-01,1.158905e-01,3.078156e-01,6.658630e-01,7.369385e-01,3.948975e-02,1.742706e-01,1.989441e-01,3.136292e-01,2.356567e-01,3.692932e-01,7.989502e-01,3.288574e-01,8.220520e-01,1.258392e-01,7.062683e-01,1.693726e-02,1.863251e-01,8.606720e-01,8.754272e-01,6.098480e-01,3.364716e-01,8.682251e-02,1.376953e-01,8.083649e-01,5.113220e-01,3.013611e-01,3.891754e-01,2.807617e-03,6.537018e-01,8.654175e-01,5.770874e-02,4.026031e-01,8.085480e-01,9.454956e-01,9.980469e-01,4.423523e-02,4.043579e-03,2.583160e-01,2.494202e-01,3.454285e-01,3.900604e-01,6.561432e-01,6.998291e-01,2.077789e-01,1.675110e-01,6.629333e-01,7.610931e-01,9.087524e-01,8.351135e-01,8.166962e-01,7.610321e-01,8.699951e-01,3.380585e-01,8.895874e-02,3.442230e-01,9.312439e-01,5.442352e-01,7.446136e-01,5.943298e-01,4.092102e-01,4.801483e-01,7.029266e-01,1.997070e-01,7.533112e-01,1.785278e-03,3.406830e-01,2.482300e-01,2.175293e-01,9.312744e-01,4.135132e-01,8.446503e-01,5.454407e-01,2.742004e-01,7.346497e-01,3.556671e-01,4.664307e-01,7.722473e-01,7.922363e-01,9.195557e-01,5.797424e-01,9.763489e-01,2.473450e-02,8.230286e-01,7.209473e-01,5.491638e-01,7.306976e-01,9.379883e-01,9.797821e-01,4.206390e-01,4.618835e-01,5.150452e-01,4.417419e-02,8.622894e-01,7.531738e-01,8.866425e-01,9.129028e-01,4.291840e-01,8.587036e-01,8.748779e-01,8.835297e-01,7.621765e-01,9.835815e-02,8.970184e-01,8.430023e-01,7.284546e-01,4.660950e-01,6.480408e-01,4.342651e-02,8.184204e-01,4.957581e-01,6.248779e-01,2.489624e-01,7.976227e-01,8.307343e-01,1.907196e-01,2.138367e-01,8.637085e-01,8.958130e-01,1.385193e-01,7.778931e-01,1.571655e-01,7.618866e-01,8.787231e-01,5.944061e-01,5.471039e-01,6.845856e-01,3.231201e-01,7.288055e-01,9.884949e-01,7.991791e-01,2.406616e-01,6.950378e-01,5.450745e-01,6.578064e-02,7.610779e-01,3.404694e-01,2.167206e-01,7.698669e-01,7.637329e-01,8.704376e-01,6.705475e-01,7.246552e-01,9.467468e-01,4.976196e-01,5.745544e-01,8.842773e-01,7.728882e-01,6.977234e-01,2.243958e-01,5.163727e-01,1.858673e-01,5.854187e-01,9.507294e-01,7.337646e-01,4.109192e-01,3.873444e-01,5.816345e-01,3.951263e-01,7.977295e-02,1.212311e-01,2.308350e-01,3.609467e-01,4.156342e-01,2.258301e-01,6.526947e-01,8.008728e-01,1.491089e-01,5.560303e-01,6.432648e-01,1.674042e-01,2.595520e-02,7.625885e-01,3.954773e-01,3.400269e-01,6.800842e-01,9.798889e-01,8.695221e-01,3.462219e-02,6.546783e-01,5.778046e-01,7.250977e-01,5.385132e-01,7.728424e-01,6.432800e-01,9.240723e-02,5.226135e-02,1.206207e-01,2.171631e-01,3.077393e-01,1.626282e-01,8.888702e-01,4.418640e-01,4.239655e-01,8.560638e-01,9.853516e-01,6.802216e-01,7.465515e-01,8.180542e-01,8.930054e-01,6.605530e-02,4.945831e-01,1.315613e-01,5.967712e-02,3.794708e-01,6.444244e-01,8.406067e-02,4.770355e-01,1.212769e-01,7.678680e-01,9.887695e-01,3.896332e-01,1.070557e-01,7.192383e-01,2.039948e-01,3.084412e-01,9.638367e-01,2.789612e-01,9.649658e-01,5.025940e-01,9.931946e-02,1.145935e-01,6.154480e-01,5.386047e-01,5.781555e-01,2.209930e-01,5.724640e-01,1.941376e-01,8.674469e-01,3.263092e-01,1.132965e-01,1.592865e-01,9.799500e-01,4.069672e-01,7.862091e-01,2.547913e-01,3.716583e-01,5.308685e-01,3.376160e-01,4.883270e-01,4.609528e-01,6.678162e-01,1.190033e-01,3.493805e-01,4.885712e-01,1.210327e-01,2.274017e-01,1.006927e-01,2.086487e-01,1.613312e-01,5.111694e-03,7.150574e-01,4.809570e-01,8.625946e-01,2.027130e-01,9.562988e-01,9.111328e-01,3.526001e-01,8.775330e-01,2.991791e-01,4.738464e-01,1.723633e-01,2.973938e-02,5.388031e-01,4.768829e-01,5.835419e-01,4.139709e-01,6.923981e-01,8.395386e-01,7.145691e-02,5.109863e-01,3.790131e-01,4.626312e-01,6.242371e-02,1.560974e-01,7.078552e-01,5.351257e-01,6.068420e-02,3.663635e-01,6.463928e-01,4.650421e-01,2.265015e-01,7.067413e-01,5.934143e-02,9.620361e-01,1.099548e-01,7.809448e-01,1.468201e-01,7.180481e-01,7.406616e-02,9.871826e-01,1.488037e-01,4.354553e-01,3.965759e-01,7.415924e-01,1.584320e-01,4.471130e-01,4.168243e-01,6.895447e-02,5.076599e-02,6.794434e-01,6.432953e-01,2.221832e-01,8.954010e-01,3.749237e-01,6.399841e-01,8.615417e-01,9.205322e-01,6.796265e-02,2.426605e-01,2.803955e-01,7.730408e-01,5.398102e-01,9.498901e-01,4.984741e-01,9.626465e-01,8.867035e-01,3.454590e-01,7.171173e-01,7.787018e-01,2.517242e-01,1.886444e-01,6.517181e-01,4.407806e-01,7.014465e-01,3.196106e-01,6.494904e-01,2.798157e-01,8.638000e-02,1.111755e-01,7.481384e-02,5.364685e-01,4.151001e-01,8.000641e-01,8.226471e-01,7.289276e-01,7.716064e-01,5.541534e-01,9.851685e-01,2.278748e-01,7.585144e-02,6.107635e-01,6.822510e-01,1.053314e-01,5.012207e-01,8.975983e-01,5.571747e-01,1.853485e-01,8.576202e-01,6.968536e-01,4.078217e-01,1.487732e-01,7.580414e-01,6.695099e-01,3.519135e-01,2.024841e-02,8.249359e-01,2.064667e-01,8.728638e-01,5.602875e-01,2.714539e-01,6.184387e-01,2.505493e-01,8.289795e-01,1.192017e-01,1.343689e-01,2.762909e-01,3.596954e-01,8.695831e-01,1.983643e-03,1.586914e-03,1.690979e-01,3.059692e-01,6.414337e-01,1.077271e-01,2.693939e-01,6.464844e-01,8.853912e-01,9.625092e-01,7.354126e-01,5.233765e-02,9.921265e-02,2.749634e-01,1.546783e-01,2.176361e-01,9.871826e-01,8.510132e-01,4.350281e-01,5.880280e-01,9.263306e-01,3.917999e-01,6.546478e-01,1.952667e-01,8.422241e-01,8.728485e-01,6.361389e-02,6.909180e-02,4.897308e-01,6.717224e-01,7.890930e-01,6.777344e-01,4.904633e-01,3.547211e-01,7.372894e-01,6.209412e-01,9.244843e-01,4.923553e-01,7.847137e-01,4.363251e-01,9.759521e-02,2.206268e-01,9.333344e-01,2.045441e-01,5.690308e-01,5.536499e-01,2.038574e-01,4.382782e-01,6.306763e-01,1.182251e-01,5.905304e-01,7.294617e-01,3.449554e-01,4.006958e-02,3.032074e-01,5.981903e-01,1.655731e-01,7.874451e-01,1.644440e-01,2.247162e-01,6.373444e-01,8.224335e-01,5.196991e-01,4.167175e-01,7.950592e-01,5.556793e-01,3.103333e-01,6.204224e-01,6.037903e-01,7.475739e-01,2.434692e-01,4.889374e-01,5.085754e-01,7.868042e-01,1.043091e-01,7.743378e-01,4.284668e-01,6.005707e-01,9.012451e-01,2.891693e-01,6.246338e-01,3.804321e-01,1.181183e-01,5.009766e-01,8.211823e-01,6.673279e-01,4.461365e-01,6.568451e-01,2.426147e-03,4.190979e-01,4.241486e-01,8.844452e-01,7.527618e-01,1.489868e-01,1.714935e-01,6.752014e-01,1.053162e-01,2.861938e-01,6.446533e-01,6.658936e-01,3.400421e-01,7.771149e-01,9.924927e-01,5.954590e-01,1.779022e-01,3.114166e-01,5.253143e-01,5.601807e-01,7.392426e-01,8.983154e-01,7.893219e-01,2.139893e-01,4.346008e-01,1.279297e-01,6.478577e-01,5.957336e-01,9.695435e-01,6.760712e-01,1.710968e-01,8.627930e-01,5.088501e-01,8.685608e-01,9.251404e-01,7.281342e-01,2.843170e-01,6.229858e-01,5.931549e-01,7.561493e-01,9.056396e-01,8.878479e-01,7.068939e-01,2.929840e-01,8.139191e-01,9.325562e-01,8.530273e-01,1.205902e-01,7.857819e-01,7.734680e-02,3.424225e-01,3.955383e-01,9.017334e-01,4.308014e-01,5.892792e-01,5.950928e-01,7.357330e-01,8.544922e-04,2.389984e-01,8.306732e-01,6.558228e-01,4.634094e-02,6.020966e-01,3.755341e-01,7.417450e-01,2.534332e-01,1.109924e-01,8.446045e-01,4.836426e-01,1.617432e-03,3.271637e-01,8.587952e-01,6.450348e-01,1.147461e-02,8.470306e-01,5.704956e-01,2.595673e-01,8.842773e-01,6.911011e-01,9.238739e-01,4.252014e-01,1.910400e-01,3.827057e-01,3.717194e-01,2.372894e-01,8.742371e-01,9.815369e-01,3.345642e-01,2.640228e-01,4.460144e-02,6.188660e-01,2.290344e-01,1.154022e-01,8.456116e-01,5.851746e-02,3.128967e-01,6.900177e-01,9.505310e-01,7.427521e-01,4.104767e-01,7.421722e-01,5.058441e-01,4.348907e-01,4.164429e-01,4.628906e-01,6.422577e-01,7.492371e-01,3.223114e-01,8.124390e-01,2.479553e-01,7.005157e-01,8.583832e-01,9.125061e-01,3.110657e-01,3.952179e-01,4.219055e-02,7.722321e-01,8.677826e-01,4.624786e-01,4.979095e-01,2.431946e-01,9.994507e-02,6.174011e-01,1.756744e-01,9.095764e-01,7.935486e-01,9.523163e-01,5.218506e-01,1.288605e-01,2.203827e-01,2.165985e-01,6.392822e-01,9.672852e-01,9.298706e-01,7.065277e-01,8.996582e-01,2.377319e-02,2.838135e-02,4.293823e-01,5.157776e-01,2.249756e-01,4.282684e-01,9.991455e-01,4.284210e-01,1.326294e-01,9.942627e-02,1.401520e-01,6.881714e-02,9.495697e-01,7.811432e-01,2.066956e-01,1.430206e-01,5.787659e-01,5.947876e-01,7.488403e-01,7.103271e-01,4.961700e-01,2.378845e-02,3.724365e-01,4.730072e-01,9.128876e-01,2.907562e-01,5.323639e-01,4.548950e-01,7.906036e-01,6.613159e-02,1.641541e-01,4.258728e-01,2.626190e-01,9.364014e-01,3.338623e-02,5.716095e-01,6.749420e-01,4.241180e-01,4.815216e-01,9.320068e-02,6.011047e-01,9.149170e-02,9.856567e-01,8.465424e-01,9.642334e-01,5.209503e-01,1.415253e-01,2.536621e-01,9.326019e-01,7.827606e-01,6.214600e-01,7.194061e-01,6.674194e-01,7.125244e-01,1.638031e-01,4.906464e-01,8.955231e-01,2.458496e-01,9.096375e-01,3.956757e-01,3.622742e-01,3.142700e-01,9.733582e-02,4.521790e-01,4.387054e-01,3.232574e-01,6.016693e-01,2.108765e-01,8.441925e-01,3.564911e-01,4.165955e-01,9.300537e-01,5.424500e-01,9.208069e-01,4.358826e-01,5.107574e-01,3.885956e-01,5.894623e-01,8.003540e-01,9.066772e-01,6.933594e-01,6.053925e-01,4.991455e-01,4.752350e-01,4.221497e-01,1.570892e-01,2.078094e-01,3.676758e-01,8.331909e-01,1.202850e-01,7.963104e-01,6.135406e-01,8.329773e-02,8.361816e-03,4.839478e-01,1.491241e-01,3.858337e-01,4.028931e-01,9.803162e-01,6.702728e-01,4.492340e-01,8.473969e-01,1.818237e-01,7.779083e-01,4.480133e-01,2.608032e-01,2.837677e-01,5.836639e-01,5.735321e-01,8.006897e-01,5.180359e-02,6.159210e-01,3.892822e-01,2.961731e-01,8.834839e-03,9.185181e-01,8.163452e-02,8.549042e-01,5.221252e-01,7.271729e-01,3.446045e-01,1.264343e-01,2.672119e-01,2.458191e-02,1.143036e-01,3.758850e-01,2.368469e-01,4.577789e-01,5.467072e-01,9.769287e-01,7.879028e-01,7.510681e-01,4.465179e-01,9.995728e-01,7.584686e-01,9.696960e-02,8.749695e-01,5.427551e-02,4.244995e-02,5.421906e-01,7.809448e-01,2.135315e-01,3.563995e-01,3.618164e-01,9.453125e-01,4.178009e-01,5.959320e-01,7.592163e-01,6.162415e-01,3.289337e-01,1.968384e-03,6.033783e-01,2.946930e-01,4.050903e-01,9.672241e-01,5.434113e-01,5.634460e-01,7.364807e-01,2.512665e-01,2.471008e-01,8.923492e-01,6.851807e-01,3.857727e-01,8.639526e-01,2.659760e-01,8.807068e-01,6.696472e-01,1.057129e-01,3.863525e-02,1.323090e-01,3.103790e-01,8.513031e-01,2.648621e-01,2.840881e-01,3.122406e-01,6.808472e-02,1.085052e-01,8.355408e-01,6.916504e-01,7.701416e-01,7.561493e-01,5.521851e-01,1.999054e-01,7.303009e-01,7.000275e-01,6.482849e-01,4.468994e-01,7.745819e-01,8.548279e-01,5.493469e-01,3.664246e-01,7.251587e-01,4.915466e-01,3.257141e-01,2.205963e-01,2.910614e-01,3.465118e-01,6.089325e-01,1.150513e-01,1.086273e-01,2.664642e-01,3.029327e-01,3.406525e-01,9.881592e-02,9.288635e-01,6.682739e-01,2.866821e-01,3.871155e-01,1.618500e-01,9.908905e-01,4.603577e-01,6.960144e-01,4.863129e-01,5.657043e-01,5.299072e-01,7.641754e-01,2.952576e-02,1.464539e-01,5.047607e-02,3.530884e-02,7.528839e-01,3.012390e-01,7.746277e-01,4.645233e-01,8.412933e-01,1.794434e-01,7.412720e-02,1.443939e-01,5.782013e-01,3.433685e-01,8.387451e-01,9.478455e-01,3.970490e-01,3.338928e-01,1.276703e-01,2.208862e-01,2.899780e-01,2.732391e-01,5.065918e-01,8.817596e-01,9.400940e-01,4.665222e-01,1.468353e-01,2.590332e-01,3.280792e-01,2.499847e-01,8.160400e-01,9.223938e-01,2.690582e-01,1.829529e-01,3.191223e-01,1.477051e-01,5.720215e-01,9.610596e-01,4.470062e-01,9.130096e-01,9.008179e-01,6.412811e-01,2.591095e-01,7.197571e-02,2.719879e-01,8.345337e-01,2.176208e-01,9.272308e-01,3.244019e-02,9.983826e-02,9.006500e-01,7.866364e-01,4.753571e-01,3.300476e-01,2.369080e-01,4.347382e-01,6.170044e-01,4.206238e-01,1.250305e-01,4.168701e-02,6.914062e-01,9.500122e-01,9.671021e-02,3.200836e-01,1.334991e-01,1.436310e-01,7.064056e-01,6.822510e-01,9.768677e-02,5.785065e-01,5.814209e-01,1.087952e-02,4.960175e-01,8.733215e-01,7.001801e-01,6.784515e-01,9.990234e-01,5.803833e-01,2.147980e-01,6.244354e-01,3.790741e-01,7.618408e-01,5.663452e-01,4.568939e-01,7.003937e-01,8.024292e-01,1.739197e-01,1.608124e-01,7.141113e-03,2.032471e-02,1.579437e-01,8.979187e-01,1.512299e-01,2.042084e-01,4.786987e-01,5.532837e-02,4.183197e-01,8.010864e-03,9.890442e-01,2.115479e-01,6.115875e-01,8.460846e-01,3.660278e-01,5.112762e-01,5.953369e-01,4.358673e-01,5.803986e-01,6.474915e-01,8.914337e-01,8.961639e-01,1.748199e-01,5.207214e-01,7.657471e-01,4.348297e-01,8.404694e-01,3.361206e-01,8.544769e-01,5.297241e-01,5.207977e-01,5.374298e-01,2.684784e-01,4.940948e-01,9.293518e-01,3.567047e-01,7.470245e-01,4.419861e-01,7.825623e-01,7.368317e-01,3.748779e-01,7.435760e-01,8.830261e-02,1.161957e-01,3.710938e-02,9.599609e-01,5.420532e-01,4.116211e-01,9.811707e-01,2.936401e-01,5.311279e-01,3.350372e-01,1.759186e-01,6.110840e-01,9.865723e-01,5.918579e-01,3.253937e-01,8.204193e-01,2.941132e-01,9.917908e-01,1.722107e-01,2.146912e-02,8.732300e-01,2.870178e-02,9.433594e-01,2.896576e-01,3.482056e-02,4.053192e-01,3.057098e-01,7.095184e-01,7.595825e-01,1.941528e-01,1.099854e-01,4.307709e-01,3.037567e-01,1.841888e-01,3.946991e-01,7.014313e-01,6.913757e-02,6.987000e-02,7.239990e-01,5.113220e-01,4.151611e-01,5.195618e-02,4.274292e-01,7.310486e-02,8.461151e-01,2.014923e-01,7.040100e-01,8.171539e-01,4.877930e-01,6.269379e-01,3.292389e-01,3.000793e-01,3.023834e-01,4.343719e-01,9.617004e-01,3.732300e-01,9.125366e-01,9.707642e-01,8.564911e-01,9.909973e-01,4.983521e-01,5.024414e-01,8.498993e-01,8.663635e-01,7.260132e-02,3.742065e-01,8.755493e-01,6.242218e-01,5.609283e-01,7.714081e-01,4.319305e-01,9.028931e-01,2.192688e-01,9.761658e-01,3.254547e-01,3.413391e-01,2.137756e-01,7.644348e-01,1.312408e-01,6.897888e-01,2.560730e-01,1.092529e-01,1.385193e-01,1.041718e-01,9.860077e-01,3.819580e-01,9.363098e-01,5.522919e-01,7.285919e-01,5.885162e-01,3.216858e-01,5.808868e-01,3.410492e-01,7.226562e-01,8.477783e-02,4.331055e-01,3.443451e-01,2.358398e-01,9.147339e-01,2.317505e-01,2.218170e-01,4.537201e-01,6.590271e-01,1.162872e-01,8.929443e-02,5.365295e-01,3.845978e-01,7.117004e-01,7.475739e-01,7.416077e-01,5.528412e-01,5.301361e-01,1.666412e-01,3.141022e-01,6.912231e-03,9.234619e-02,5.094910e-01,8.636932e-01,7.021179e-01,4.253387e-01,8.340759e-01,4.950104e-01,1.165924e-01,7.060547e-01,5.563354e-01,8.553925e-01,2.485046e-01,1.629639e-02,4.042358e-01,5.359039e-01,7.224579e-01,4.936676e-01,9.309082e-01,8.642731e-01,2.328644e-01,3.402252e-01,9.123230e-01,5.337524e-01,5.851288e-01,9.929810e-01,3.119354e-01,4.778748e-01,1.780701e-01,5.358276e-01,9.552612e-01,5.419769e-01,5.930786e-01,2.895050e-01,1.821136e-01,6.121368e-01,6.582489e-01,4.669189e-03,1.447449e-01,9.201965e-01,2.402496e-01,3.155060e-01,1.257324e-01,1.375732e-01,5.546570e-01,2.504120e-01,7.640533e-01,9.997406e-01,2.421722e-01,2.843628e-01,9.784851e-01,4.460907e-01,5.933838e-01,4.228210e-02,8.347931e-01,9.618225e-01,9.541016e-01,8.859100e-01,9.082947e-01,8.232269e-01,4.922943e-01,1.518707e-01,7.038727e-01,6.226501e-01,5.234528e-01,4.766235e-01,3.378296e-01,2.901001e-01,9.497681e-01,5.480499e-01,4.123230e-01,5.880890e-01,5.356598e-01,8.926392e-01,2.169037e-01,8.493805e-01,9.890747e-02,3.748932e-01,7.379608e-01,7.654877e-01,7.560272e-01,5.397491e-01,5.964508e-01,7.788086e-02,8.612366e-01,9.197388e-01,2.258911e-01,5.227966e-01,1.259918e-01,1.782990e-01,7.817078e-01,8.544312e-01,3.404236e-02,5.688171e-01,1.507568e-02,4.457245e-01,6.354523e-01,9.954834e-02,9.804382e-01,6.847229e-01,2.940979e-01,9.298401e-01,7.847900e-01,2.820435e-01,9.788055e-01,7.710266e-02,4.895325e-01,1.546478e-01,1.274872e-01,3.540649e-01,9.739075e-01,7.618713e-01,1.908264e-01,9.295502e-01,5.193634e-01,7.113495e-01,4.217529e-01,7.461395e-01,8.961945e-01,9.428558e-01,5.118103e-01,5.090485e-01,3.534088e-01,7.194824e-01,3.926392e-01,2.481537e-01,9.739990e-01,6.167145e-01,1.506348e-01,8.210144e-01,2.392273e-01,5.735626e-01,6.384430e-01,2.505188e-01,6.885834e-01,7.904663e-01,8.408813e-01,4.544678e-01,1.657715e-01,1.506348e-01,7.819061e-01,3.512573e-01,8.332672e-01,1.734161e-01,4.541168e-01,4.344940e-01,8.946228e-01,5.312195e-01,3.290710e-01,1.126862e-01,4.739838e-01,2.206573e-01,6.177521e-01,7.700043e-01,6.759338e-01,7.884521e-01,5.448303e-01,7.876434e-01,2.138824e-01,3.741760e-01,3.954620e-01,6.012268e-01,8.729095e-01,4.431610e-01,4.549103e-01,4.444580e-01,9.059143e-01,9.966278e-01,8.572388e-02,3.264160e-01,9.637146e-01,7.843475e-01,4.016418e-01,2.507782e-01,7.287292e-01,5.027924e-01,3.923645e-01,9.624481e-01,1.502838e-01,4.464417e-01,5.355225e-01,5.062714e-01,1.212463e-01,4.532471e-01,1.715240e-01,4.252625e-02,5.644226e-02,5.186005e-01,4.857788e-01,5.283966e-01,9.412231e-01,2.718811e-01,3.249359e-01,8.257599e-01,9.268188e-01,1.324005e-01,2.603760e-01,1.339569e-01,5.313110e-02,4.233246e-01,9.359741e-01,3.775787e-01,8.575897e-01,1.900482e-01,4.436340e-01,1.484680e-02,1.375732e-01,8.578186e-01,5.638733e-01,2.198639e-01,2.049255e-02,5.630493e-03,7.119446e-01,1.315308e-01,4.656677e-01,4.043579e-03,8.528900e-01,6.414642e-01,3.683014e-01,7.854919e-01,7.568817e-01,7.794342e-01,6.522369e-01,1.434479e-01,6.317139e-03,8.626404e-01,2.550964e-01,9.965820e-01,4.954987e-01,2.033844e-01,6.962738e-01,2.371521e-01,6.742859e-02,3.621674e-01,6.200409e-01,7.345581e-02,5.292358e-01,2.234955e-01,7.629700e-01,5.461121e-01,2.735748e-01,9.090881e-01,3.455811e-01,2.089844e-01,8.369141e-01,9.272461e-01,1.658783e-01,1.720886e-01,5.111542e-01,8.514404e-02,6.676636e-01,3.651428e-01,3.472137e-01,1.402283e-01,7.596283e-01,4.331970e-02,9.023895e-01,1.306152e-02,3.970490e-01,1.422882e-01,3.774872e-01,4.396973e-01,3.858948e-01,8.613892e-01,1.223755e-02,7.183380e-01,2.358246e-01,2.726746e-02,6.564941e-01,7.431030e-01,7.162476e-02,1.889038e-02,2.291107e-01,6.700439e-01,5.190887e-01,6.885223e-01,7.290802e-01,3.006287e-01,4.980774e-01,4.906006e-01,3.394928e-01,7.806091e-01,3.970184e-01,5.296783e-01,7.123413e-01,3.530884e-02,7.163391e-01,1.578674e-01,9.399719e-01,8.138885e-01,7.432556e-02,3.389130e-01,3.445129e-01,1.040344e-01,5.532684e-01,6.864624e-01,7.000427e-01,3.868408e-01,6.887360e-01,2.800140e-01,8.406219e-01,1.476135e-01,4.313507e-01,7.524109e-01,6.314850e-01,6.372070e-01,4.400024e-01,7.815552e-02,8.767548e-01,7.789307e-01,1.020813e-02,1.756439e-01,5.064850e-01,4.861755e-01,5.452728e-01,7.972412e-01,8.712311e-01,5.704803e-01,4.538727e-01,3.477478e-01,8.049316e-01,2.397766e-01,1.503906e-01,7.702637e-01,8.884888e-01,1.241913e-01,9.074097e-01,8.831787e-01,3.261566e-01,8.786774e-01,9.833221e-01,5.416412e-01,6.060333e-01,1.863403e-01,8.605347e-01,6.537933e-01,6.490784e-01,3.100281e-01,9.482727e-01,1.419067e-01,9.093628e-01,2.786560e-01,1.120758e-01,6.403046e-01,4.410553e-01,3.540039e-01,3.683014e-01,7.692566e-01,1.135101e-01,3.325043e-01,3.734131e-01,5.844116e-02,8.326569e-01,5.983887e-01,3.296051e-01,5.348969e-01,1.521301e-01,7.888794e-01,7.537842e-01,3.294067e-01,8.031616e-01,2.393341e-01,8.930969e-01,6.672668e-01,4.232788e-01,9.822693e-01,4.656982e-02,6.900177e-01,6.941681e-01,7.243347e-01,8.000031e-01,5.950012e-01,9.929810e-01,2.186737e-01,6.074982e-01,4.119873e-03,1.019287e-01,3.160858e-01,9.849701e-01,8.841095e-01,8.229828e-01,6.409607e-01,2.612152e-01,8.184509e-01,8.111267e-01,3.649750e-01,5.346985e-01,7.471466e-01,2.366333e-01,8.590698e-03,1.078339e-01,3.682709e-01,4.724884e-01,9.495850e-01,1.255798e-02,2.652740e-01,2.844849e-01,9.187622e-01,9.779663e-01,5.066223e-01,6.775208e-01,2.546082e-01,9.471893e-01,5.684509e-01,4.192963e-01,6.839752e-01,3.143005e-01,8.580627e-01,1.143799e-01,7.577515e-02,6.991882e-01,2.438812e-01,8.201447e-01,3.054504e-01,2.995300e-02,6.979370e-01,9.813843e-01,6.378174e-01,9.502869e-01,8.555756e-01,8.738251e-01,8.715210e-01,9.865417e-01,8.724365e-01,5.548706e-01,9.904022e-01,8.392944e-01,7.324066e-01,6.676331e-01,8.912048e-01,9.765930e-01,3.651428e-01,2.984924e-01,8.664856e-01,2.950897e-01,1.549835e-01,5.047913e-01,4.676971e-01,6.639709e-01,7.154388e-01,1.654053e-02,8.961945e-01,9.343719e-01,3.317261e-02,5.603180e-01,7.162170e-01,5.311584e-02,6.610260e-01,2.441406e-01,1.473389e-01,7.068176e-01,4.275970e-01,7.745514e-01,4.844208e-01,8.365631e-01,4.726868e-01,7.522583e-01,2.927856e-01,6.100311e-01,3.311310e-01,1.350098e-01,7.514496e-01,2.376556e-01,2.345276e-02,7.969818e-01,4.970703e-01,2.294159e-01,5.880585e-01,9.480286e-01,5.016174e-01,9.800110e-01,8.712158e-01,4.766235e-01,4.872894e-01,3.879242e-01,2.909851e-02,3.083801e-01,2.764130e-01,8.462677e-01,8.203430e-01,6.224976e-01,3.054504e-01,6.138763e-01,4.185028e-01,8.257294e-01,7.023621e-01,4.050903e-01,4.985962e-01,5.289154e-01,1.580658e-01,5.796967e-01,1.033478e-01,8.553314e-01,6.251831e-01,2.622070e-01,7.760925e-01,5.091248e-01,8.618164e-01,2.823029e-01,2.470093e-01,7.570038e-01,1.345215e-01,9.672089e-01,1.428680e-01,7.181396e-01,9.554291e-01,7.521667e-01,1.107025e-01,1.842804e-01,9.171143e-01,8.015747e-01,1.484375e-01,6.614685e-02,3.213959e-01,1.608124e-01,4.608002e-01,6.824341e-01,6.389923e-01,6.391907e-02,7.975006e-01,9.215088e-01,3.648834e-01,7.178650e-01,9.928589e-01,7.432098e-01,6.644440e-01,1.510620e-02,3.524933e-01,7.974548e-01,4.727936e-01,4.640198e-01,1.940155e-01,7.066345e-01,1.059418e-01,8.246460e-01,5.066986e-01,1.691895e-01,8.008423e-01,3.106079e-01,9.211121e-01,6.573944e-01,1.914520e-01,4.184418e-01,3.335266e-01,5.810852e-01,8.971710e-01,8.859863e-01,7.165680e-01,7.625122e-01,8.006439e-01,3.136292e-01,6.200867e-01,2.895355e-01,1.208038e-01,8.081055e-02,4.480896e-01,4.791412e-01,7.193604e-01,9.373169e-01,7.943726e-02,4.825745e-01,2.299500e-01,5.614929e-01,1.693268e-01,9.939423e-01,6.430511e-01,7.716675e-01,7.638092e-01,8.779602e-01,1.325989e-02,1.233673e-01,8.792267e-01,2.734222e-01,5.137634e-01,7.310791e-01,9.224243e-01,1.865997e-01,2.893066e-02,6.843719e-01,9.608765e-01,8.254700e-01,2.843933e-01,1.988220e-01,4.467773e-02,2.820740e-01,6.194611e-01,4.863739e-01,1.443939e-01,8.705139e-01,9.069214e-01,1.874542e-01,7.900391e-01,2.636108e-01,3.257751e-01,5.126801e-01,7.691803e-01,3.088684e-01,2.030945e-02,7.853394e-01,7.638550e-01,5.951691e-01,1.970978e-01,2.602386e-01,6.026764e-01,5.369568e-01,6.509705e-01,2.201080e-01,4.674377e-01,4.666290e-01,3.698273e-01,9.637909e-01,8.856354e-01,3.309631e-01,2.003632e-01,7.622833e-01,6.628418e-02,6.067810e-01,2.584839e-01,5.641479e-01,1.113129e-01,5.708160e-01,6.365204e-01,4.123077e-01,1.163330e-01,5.753326e-01,1.257477e-01,5.906525e-01,9.061737e-01,5.822144e-01,5.335693e-01,3.231812e-02,6.486511e-02,8.735657e-02,4.893341e-01,8.442383e-01,6.030884e-01,9.272461e-01,8.438263e-01,6.091309e-02,2.989502e-01,6.569061e-01,7.080536e-01,5.239258e-01,8.276520e-01,4.046173e-01,7.878723e-01,3.730774e-02,9.164429e-01,3.506317e-01,2.697296e-01,7.696533e-02,8.918304e-01,6.071625e-01,6.151733e-01,6.566925e-01,8.396912e-01,3.824310e-01,7.238312e-01,1.798401e-01,6.292725e-02,5.612335e-01,8.306885e-01,9.757385e-01,8.252869e-01,9.087219e-01,8.523712e-01,3.745422e-01,7.817841e-01,2.952728e-01,6.567841e-01,6.614685e-02,7.603455e-02,1.850739e-01,2.391052e-02,8.173523e-01,4.176941e-01,8.206635e-01,5.527649e-01,1.351624e-01,2.789307e-01,8.105469e-01,3.891296e-01,2.166748e-01,2.818604e-01,1.061859e-01,1.071930e-01,1.785126e-01,7.821503e-01,9.231415e-01,9.302368e-01,8.622131e-01,9.897461e-01,2.429504e-01,5.309601e-01,8.696442e-01,4.190369e-01,4.911652e-01,6.331329e-01,5.259247e-01,4.765625e-01,2.974548e-01,3.537292e-01,8.410797e-01,3.137817e-01,9.540405e-01,7.805939e-01,7.291412e-01,3.392639e-01,9.640350e-01,7.733917e-01,9.101257e-01,8.555908e-01,2.375793e-02,2.106934e-01,7.132568e-01,2.446442e-01,4.858246e-01,5.548859e-01,2.439880e-01,2.185516e-01,9.048462e-01,8.439636e-02,3.451080e-01,5.790710e-01,8.131714e-01,6.109009e-01,7.430573e-01,3.576508e-01,5.467224e-02,8.450317e-01,6.476898e-01,5.692139e-01,2.111053e-01,4.952087e-01,7.624207e-01,9.967041e-01,1.165466e-01,1.288300e-01,8.551636e-01,8.160858e-01,2.870026e-01,5.783997e-01,5.610657e-02,1.009827e-01,5.931091e-01,5.372925e-01,5.406036e-01,8.929443e-02,6.927185e-01,9.475708e-01,9.470062e-01,9.500122e-01,7.631226e-01,4.351654e-01,1.455231e-01,5.405731e-01,3.440857e-01,4.164276e-01,7.116852e-01,9.613037e-04,6.907654e-02,7.631531e-01,4.662781e-01,5.503387e-01,4.406891e-01,5.790253e-01,5.654602e-01,7.899323e-01,7.303925e-01,9.738617e-01,3.238373e-01,3.607330e-01,6.728821e-01,7.852325e-01,7.913818e-01,3.858185e-01,1.599579e-01,7.116699e-01,7.185364e-02,5.901947e-01,3.149719e-01,6.615448e-01,2.262573e-01,1.772614e-01,4.079742e-01,6.528168e-01,6.789856e-01,2.953949e-01,3.772888e-01,4.306030e-01,7.735596e-01,3.681793e-01,4.931641e-02,6.631012e-01,5.126343e-01,1.104736e-02,6.985626e-01,2.725830e-01,9.050598e-01,9.896851e-02,2.246552e-01,5.769501e-01,1.580353e-01,1.938782e-01,4.286194e-02,7.265930e-01,6.705017e-01,9.212036e-01,5.253906e-01,7.545471e-02,4.723816e-01,4.110870e-01,1.614838e-01,7.734985e-01,6.185760e-01,3.011627e-01,3.691101e-02,9.014282e-01,7.737274e-01,7.558746e-01,9.131470e-01,1.427765e-01,8.838043e-01,6.474304e-02,4.954834e-01,7.872009e-02,6.395416e-01,9.893646e-01,8.352966e-01,1.651001e-02,8.967438e-01,5.842896e-01,6.207581e-01,7.849731e-01,5.135193e-01,5.819550e-01,1.818695e-01,4.678040e-01,4.390717e-01,1.812897e-01,5.677490e-01,9.997559e-01,6.513367e-01,7.785797e-01,9.160614e-01,9.070435e-01,3.326263e-01,1.657410e-01,5.003204e-01] -12544 rows diff --git a/mlir-assigner/tests/Ops/Relu/ReluSimple.json b/mlir-assigner/tests/Ops/Relu/ReluSimple.json deleted file mode 100644 index d695a75..0000000 --- a/mlir-assigner/tests/Ops/Relu/ReluSimple.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "memref": { - "data": [ - 0.7962646484375, -0.7171478271484375, 1.5724029541015625, - -0.8463287353515625, 0.4888916015625, -0.9241485595703125, - 0.896575927734375, -0.9009552001953125, 0.5742950439453125, - -0.28948974609375 - ], - "dims": [1, 10], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/Relu/ReluSimple.mlir b/mlir-assigner/tests/Ops/Relu/ReluSimple.mlir deleted file mode 100644 index a854a53..0000000 --- a/mlir-assigner/tests/Ops/Relu/ReluSimple.mlir +++ /dev/null @@ -1,16 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "relusimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 0.000000e+00 : f32 - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = arith.cmpf oge, %0, %cst : f32 - %2 = arith.select %1, %0, %cst : f32 - affine.store %2, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Relu/ReluSimple.res b/mlir-assigner/tests/Ops/Relu/ReluSimple.res deleted file mode 100644 index 36f04c8..0000000 --- a/mlir-assigner/tests/Ops/Relu/ReluSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[7.962646e-01,0.000000e+00,1.572403e+00,0.000000e+00,4.888916e-01,0.000000e+00,8.965759e-01,0.000000e+00,5.742950e-01,0.000000e+00] -20 rows diff --git a/mlir-assigner/tests/Ops/Round/RoundSimple.mlir b/mlir-assigner/tests/Ops/Round/RoundSimple.mlir deleted file mode 100644 index 4c26781..0000000 --- a/mlir-assigner/tests/Ops/Round/RoundSimple.mlir +++ /dev/null @@ -1,30 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "roundsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 5.000000e-01 : f32 - %cst_0 = arith.constant 2.000000e+00 : f32 - %cst_1 = arith.constant 1.000000e+00 : f32 - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = math.floor %0 : f32 - %2 = arith.subf %0, %1 : f32 - %3 = arith.cmpf ogt, %2, %cst : f32 - %4 = arith.addf %1, %cst_1 : f32 - %5 = arith.select %3, %4, %1 : f32 - %6 = arith.mulf %1, %cst : f32 - %7 = math.floor %6 : f32 - %8 = arith.mulf %7, %cst_0 : f32 - %9 = arith.subf %1, %8 : f32 - %10 = arith.cmpf oeq, %9, %cst_1 : f32 - %11 = arith.addf %1, %cst_1 : f32 - %12 = arith.select %10, %11, %1 : f32 - %13 = arith.cmpf oeq, %2, %cst : f32 - %14 = arith.select %13, %12, %5 : f32 - affine.store %14, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Sign/SignSimple.mlir b/mlir-assigner/tests/Ops/Sign/SignSimple.mlir deleted file mode 100644 index dc67ce6..0000000 --- a/mlir-assigner/tests/Ops/Sign/SignSimple.mlir +++ /dev/null @@ -1,20 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "signsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant -1.000000e+00 : f32 - %cst_0 = arith.constant 1.000000e+00 : f32 - %cst_1 = arith.constant 0.000000e+00 : f32 - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg1 = 0 to 1 { - affine.for %arg2 = 0 to 10 { - %0 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %1 = arith.cmpf ogt, %0, %cst_1 : f32 - %2 = arith.select %1, %cst_0, %cst : f32 - %3 = arith.cmpf oeq, %0, %cst_1 : f32 - %4 = arith.select %3, %cst_1, %2 : f32 - affine.store %4, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.json b/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.json deleted file mode 100644 index 278f0b2..0000000 --- a/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "memref": { - "data": [ - 10.7962646484375, 0.07171478271484375, 0.05724029541015625, - 0.8463287353515625, 0.4888916015625, -0.9241485595703125, - 0.896575927734375, 0.9009552001953125, 0.5742950439453125, - 0.28948974609375 - ], - "dims": [1, 10], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.mlir b/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.mlir deleted file mode 100644 index f110a41..0000000 --- a/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.mlir +++ /dev/null @@ -1,38 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "softmaxbasicmnist.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a"], llvm.emit_c_interface, output_names = ["out_a"]} { - %cst = arith.constant 0xFF800000 : f32 - %cst_0 = arith.constant 0.000000e+00 : f32 - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - %alloc_1 = memref.alloc() : memref - %alloc_2 = memref.alloc() : memref - affine.for %arg1 = 0 to 1 { - affine.store %cst_0, %alloc_1[] : memref - affine.store %cst, %alloc_2[] : memref - affine.for %arg2 = 0 to 10 { - %2 = affine.load %alloc_2[] : memref - %3 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %4 = arith.cmpf ogt, %2, %3 : f32 - %5 = arith.select %4, %2, %3 : f32 - affine.store %5, %alloc_2[] : memref - } - %0 = affine.load %alloc_2[] : memref - affine.for %arg2 = 0 to 10 { - %2 = affine.load %alloc_1[] : memref - %3 = affine.load %arg0[%arg1, %arg2] : memref<1x10xf32> - %4 = arith.subf %3, %0 : f32 - %5 = math.exp %4 : f32 - %6 = arith.addf %2, %5 : f32 - affine.store %6, %alloc_1[] : memref - affine.store %5, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - %1 = affine.load %alloc_1[] : memref - affine.for %arg2 = 0 to 10 { - %2 = affine.load %alloc[%arg1, %arg2] : memref<1x10xf32> - %3 = arith.divf %2, %1 : f32 - affine.store %3, %alloc[%arg1, %arg2] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 1 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.res b/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.res deleted file mode 100644 index 212b307..0000000 --- a/mlir-assigner/tests/Ops/Softmax/SoftmaxBasicMnist.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[9.997864e-01,1.525879e-05,1.525879e-05,3.051758e-05,3.051758e-05,0.000000e+00,3.051758e-05,3.051758e-05,3.051758e-05,3.051758e-05] -70 rows diff --git a/mlir-assigner/tests/Ops/Sub/SubSimple.json b/mlir-assigner/tests/Ops/Sub/SubSimple.json deleted file mode 100644 index 2f99524..0000000 --- a/mlir-assigner/tests/Ops/Sub/SubSimple.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "memref": { - "data": [ - 0.7962646484375, 0.7171478271484375, 0.5724029541015625, - 0.8463287353515625, 0.4888916015625, 0.9241485595703125, - 0.896575927734375, 0.9009552001953125, 0.5742950439453125, - 0.28948974609375 - ], - "dims": [1, 10], - "type": "f32" - } - }, - { - "memref": { - "data": [ - 0.256439208984375, 0.635406494140625, 0.4245147705078125, - 0.1829681396484375, 0.974365234375, 0.0897979736328125, - 0.9962005615234375, 0.039520263671875, 0.4347991943359375, - 0.1649627685546875 - ], - "dims": [1, 10], - "type": "f32" - } - } -] diff --git a/mlir-assigner/tests/Ops/Sub/SubSimple.mlir b/mlir-assigner/tests/Ops/Sub/SubSimple.mlir deleted file mode 100644 index e84c448..0000000 --- a/mlir-assigner/tests/Ops/Sub/SubSimple.mlir +++ /dev/null @@ -1,16 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "subsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>, %arg1: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a", "in_b"], llvm.emit_c_interface, output_names = ["out_a"]} { - %c0 = arith.constant 0 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg2 = 0 to 1 { - affine.for %arg3 = 0 to 10 { - %0 = affine.load %arg0[%c0, %arg3] : memref<1x10xf32> - %1 = affine.load %arg1[%c0, %arg3] : memref<1x10xf32> - %2 = arith.subf %0, %1 : f32 - affine.store %2, %alloc[%arg2, %arg3] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 2 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_b\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/Ops/Sub/SubSimple.res b/mlir-assigner/tests/Ops/Sub/SubSimple.res deleted file mode 100644 index 6d82884..0000000 --- a/mlir-assigner/tests/Ops/Sub/SubSimple.res +++ /dev/null @@ -1,3 +0,0 @@ -Result: -memref<1x10xf32>[5.398254e-01,8.174133e-02,1.478882e-01,6.633606e-01,-4.854736e-01,8.343353e-01,-9.962463e-02,8.614197e-01,1.394958e-01,1.245270e-01] -23 rows diff --git a/mlir-assigner/tests/Ops/Sum/SumSimple.mlir b/mlir-assigner/tests/Ops/Sum/SumSimple.mlir deleted file mode 100644 index c3d49aa..0000000 --- a/mlir-assigner/tests/Ops/Sum/SumSimple.mlir +++ /dev/null @@ -1,18 +0,0 @@ -module attributes {llvm.data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", llvm.target_triple = "x86_64-unknown-linux-gnu", "onnx-mlir.symbol-postfix" = "sumsimple.0.mlir"} { - func.func @main_graph(%arg0: memref<1x10xf32>, %arg1: memref<1x10xf32>, %arg2: memref<1x10xf32>) -> memref<1x10xf32> attributes {input_names = ["in_a", "in_b", "in_c"], llvm.emit_c_interface, output_names = ["out_a"]} { - %c0 = arith.constant 0 : index - %alloc = memref.alloc() {alignment = 16 : i64} : memref<1x10xf32> - affine.for %arg3 = 0 to 1 { - affine.for %arg4 = 0 to 10 { - %0 = affine.load %arg0[%c0, %arg4] : memref<1x10xf32> - %1 = affine.load %arg1[%c0, %arg4] : memref<1x10xf32> - %2 = arith.addf %0, %1 : f32 - %3 = affine.load %arg2[%c0, %arg4] : memref<1x10xf32> - %4 = arith.addf %2, %3 : f32 - affine.store %4, %alloc[%arg3, %arg4] : memref<1x10xf32> - } - } - return %alloc : memref<1x10xf32> - } - "krnl.entry_point"() {func = @main_graph, numInputs = 3 : i32, numOutputs = 1 : i32, signature = "[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_a\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_b\22 }\0A , { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22in_c\22 }\0A\0A]\00@[ { \22type\22 : \22f32\22 , \22dims\22 : [1 , 10] , \22name\22 : \22out_a\22 }\0A\0A]\00"} : () -> () -} diff --git a/mlir-assigner/tests/run.py b/mlir-assigner/tests/run.py index 4d7214e..13ad856 100644 --- a/mlir-assigner/tests/run.py +++ b/mlir-assigner/tests/run.py @@ -1,8 +1,10 @@ import os +import ast import sys from os.path import isfile, isdir from subprocess import STDOUT, check_output, CalledProcessError, TimeoutExpired import argparse +import tempfile class bcolors: HEADER = '\033[95m' @@ -14,11 +16,39 @@ class bcolors: ENDC = '\033[0m' UNDERLINE = '\033[4m' +MAX_DELTA = 0.001 + run_tests = 0 success_tests = 0 failed_tests = 0 error_tests = 0 +ignored_tests = 0 errors = [] +mlir_assigner = "build/bin/mlir-assigner" +zkml_compiler = "build/bin/zkml-onnx-compiler" + +def assert_output(should_output, is_output): + global MAX_DELTA + ziped = zip(should_output.splitlines(), is_output.splitlines()) + #1 First Line Result + s,i = next(ziped) + if s != i: + print("FAIL") + return False, "Cannot get Result (First Line does not match) " + s,i = next(ziped) + memref_index = s.find('[') + if s[0: memref_index] != i[0: memref_index]: + return False + s_values = ast.literal_eval(s[memref_index:]) + i_values = ast.literal_eval(i[memref_index:]) + if any(filter(lambda a: a >= MAX_DELTA, map(lambda a: abs(a[0]-a[1]), zip(s_values, i_values)))): + return False, "Values diverge more than > {}".format(MAX_DELTA) + s,i = next(ziped) + s = s.replace("rows", "").strip() + i = i.replace("rows", "").strip() + if s != i: + return False, "Amount of rows mismatch (should={}; is={})".format(s, i) + return True, "" def build_error_object(file, reason): return dict({ @@ -26,16 +56,105 @@ def build_error_object(file, reason): 'reason': reason }) +def test_onnx(file, subfolder_path, timeout, verbose, keep_mlir): + global run_tests + global success_tests + global failed_tests + global error_tests + global errors + global zkml_compiler + mlir_file = os.path.join(subfolder_path, file.replace(".onnx", ".mlir")) + args = [zkml_compiler, os.path.join(subfolder_path, file), "-i", mlir_file] + if verbose: + print("running: '" + " ".join(args) + "'...", flush=True) + #todo remove check output + check_output(args, stderr=STDOUT, timeout=timeout).decode().strip() + # read output file + output_file = os.path.join(subfolder_path, file.replace(".onnx", ".res")) + if not isfile(output_file): + print(f"{bcolors.FAIL} error{bcolors.ENDC}") + errors.append(build_error_object(file, f"cannot find output file")) + error_tests += 1 + return + with open(output_file,mode='r') as f: + should_output = f.read().strip() + # Construct the JSON file name by replacing the ".mlir" extension with ".json" + json_file = file.replace(".onnx", ".json") + json_file_path = os.path.join(subfolder_path, json_file) + # Call the assigner binary with the input files + run_tests += 1 + args = [mlir_assigner, "-b" , mlir_file, "-i", json_file_path, "-c", "circuit", "-t", "table", "-e", "pallas", "--print_circuit_output"] + if verbose: + print("running: '" + " ".join(args) + "'...", flush=True) + try: + valid, error_string = assert_output(should_output, check_output(args, stderr=STDOUT, timeout=timeout).decode().strip()) + if valid: + print(f"{bcolors.OKGREEN} success{bcolors.ENDC}") + success_tests += 1 + else: + failed_tests += 1 + print(f"{bcolors.FAIL} failed{bcolors.ENDC}") + errors.append(build_error_object(file, error_string)) + except CalledProcessError: + error_tests += 1 + print(f"{bcolors.FAIL} error{bcolors.ENDC}") + errors.append(build_error_object(file, f"unexpteced error from subprocess")) + except TimeoutExpired: + error_tests += 1 + print(f"{bcolors.FAIL} error{bcolors.ENDC}") + errors.append(build_error_object(file, f"ran into timeout ({timeout}s)")) + finally: + if not keep_mlir and isfile(mlir_file): + if verbose: + print("removing {}".format(mlir_file)) + os.remove(mlir_file) -def test_folder(test_suite, folder, timeout, verbose): - +def test_mlir(file, subfolder_path, timeout, verbose): global run_tests global success_tests global failed_tests global error_tests global errors - assigner_binary = "build/bin/mlir-assigner" + global mlir_assigner + + # read output file + output_file = os.path.join(subfolder_path, file.replace(".mlir", ".res")) + if not isfile(output_file): + print(f"{bcolors.FAIL} error{bcolors.ENDC}") + errors.append(build_error_object(file, f"cannot find output file")) + error_tests += 1 + return + with open(output_file,mode='r') as f: + should_output = f.read().strip() + # Construct the JSON file name by replacing the ".mlir" extension with ".json" + json_file = file.replace(".mlir", ".json") + json_file_path = os.path.join(subfolder_path, json_file) + # Call the assigner binary with the input files + run_tests += 1 + args = [mlir_assigner, "-b" , os.path.join(subfolder_path, file), "-i", json_file_path, "-c", "circuit", "-t", "table", "-e", "pallas", "--print_circuit_output"] + if verbose: + print("running: '" + " ".join(args) + "'...", flush=True) + try: + is_output = check_output(args, stderr=STDOUT, timeout=timeout).decode().strip() + if is_output == should_output: + print(f"{bcolors.OKGREEN} success{bcolors.ENDC}") + success_tests += 1 + else: + failed_tests += 1 + print(f"{bcolors.FAIL} failed{bcolors.ENDC}") + errors.append(build_error_object(file, f"output mismatch")) + except CalledProcessError: + error_tests += 1 + print(f"{bcolors.FAIL} error{bcolors.ENDC}") + errors.append(build_error_object(file, f"unexpteced error from subprocess")) + except TimeoutExpired: + error_tests += 1 + print(f"{bcolors.FAIL} error{bcolors.ENDC}") + errors.append(build_error_object(file, f"ran into timeout ({timeout}s)")) + +def test_folder(test_suite, folder, mlir_tests, timeout, verbose, keep_mlir): + global ignored_tests # Get a list of all files and folders within the "ops" folder items = os.listdir(folder) @@ -52,51 +171,38 @@ def test_folder(test_suite, folder, timeout, verbose): subfolder_path = os.path.join(folder, subfolder) # Get a list of all files within the subfolder files = os.listdir(subfolder_path) - # Iterate over the files and grab those ending in ".mlir" files.sort() + ignore_tests = [] + if ".ignore" in files: + with open(os.path.join(subfolder_path, ".ignore")) as ignore_file: + ignore_tests = ignore_file.read() + if ignore_tests == "": + ignore_tests = files + else: + ignore_tests = list(ignore_tests.splitlines()) + for file in files: - if file.endswith(".mlir"): - # read output file + if file.endswith(".onnx") and not mlir_tests: + print(f"Testing {file}...", end="",flush=True) + if file in ignore_tests: + ignored_tests += 1 + print(f"{bcolors.OKCYAN} ignored {bcolors.ENDC}") + else: + test_onnx(file, subfolder_path, timeout, verbose, keep_mlir) + if file.endswith(".mlir") and mlir_tests: print(f"Testing {file}...", end="", flush=True) - output_file = os.path.join(subfolder_path, file.replace(".mlir", ".res")) - if not isfile(output_file): - print(f"{bcolors.FAIL} error{bcolors.ENDC}") - errors.append(build_error_object(file, f"cannot find output file")) - error_tests += 1 - continue - with open(output_file,mode='r') as f: - should_output = f.read().strip() - # Construct the JSON file name by replacing the ".mlir" extension with ".json" - json_file = file.replace(".mlir", ".json") - json_file_path = os.path.join(subfolder_path, json_file) - # Call the assigner binary with the input files - run_tests += 1 - args = [assigner_binary, "-b" , os.path.join(subfolder_path, file), "-i", json_file_path, "-c", "circuit", "-t", "table", "-e", "pallas", "--print_circuit_output"] - if verbose: - print("running: '" + " ".join(args) + "'...", end="", flush=True) - try: - is_output = check_output(args, stderr=STDOUT, timeout=timeout).decode().strip() - if is_output == should_output: - print(f"{bcolors.OKGREEN} success{bcolors.ENDC}") - success_tests += 1 - else: - failed_tests += 1 - print(f"{bcolors.FAIL} failed{bcolors.ENDC}") - errors.append(build_error_object(file, f"output mismatch")) - except CalledProcessError: - error_tests += 1 - print(f"{bcolors.FAIL} error{bcolors.ENDC}") - errors.append(build_error_object(file, f"unexpteced error from subprocess")) - except TimeoutExpired: - error_tests += 1 - print(f"{bcolors.FAIL} error{bcolors.ENDC}") - errors.append(build_error_object(file, f"ran into timeout ({timeout}s)")) + if file in ignore_tests: + ignored_tests += 1 + print(f"{bcolors.OKCYAN} ignored {bcolors.ENDC}") + else: + test_mlir(file, subfolder_path, timeout, verbose) parser = argparse.ArgumentParser() parser.add_argument('--fast', action='store_true', help='Run fast tests only') parser.add_argument('--verbose', action='store_true', help='Print detailed output') +parser.add_argument('--keep-mlir', action='store_true', help='Keep generated mlir files') args = parser.parse_args() @@ -105,16 +211,18 @@ def test_folder(test_suite, folder, timeout, verbose): else: slow_test = True +test_folder("SingleOps E2E", "mlir-assigner/tests/Ops/Onnx", False, 30, args.verbose, args.keep_mlir) +test_folder("SingleOps special MLIR", "mlir-assigner/tests/Ops/Mlir", True, 30, args.verbose, args.keep_mlir) # Rest of your code... -test_folder("SingleOps", "mlir-assigner/tests/Ops/", 30, args.verbose) +# test_folder("SingleOps", "mlir-assigner/tests/Ops/", 30, args.verbose) if slow_test: - test_folder("Models", "mlir-assigner/tests/Models/", 500, args.verbose) + test_folder("Models", "mlir-assigner/tests/Models/", False, 500, args.verbose, args.keep_mlir) # cleanup os.remove("circuit") os.remove("table") print("\n") -print(f"Test Report - run {run_tests} tests, {success_tests} success, {failed_tests} failed, {error_tests} errors") +print(f"Test Report - run {run_tests} tests, {success_tests} success, {failed_tests} failed, {error_tests} errors, {ignored_tests} ignored") for error in errors: print("\t" + error['file'] + ": \"" + error['reason'] + "\"") print("") diff --git a/nix/zkllvm/default.nix b/nix/zkllvm/default.nix index d786622..dcba352 100644 --- a/nix/zkllvm/default.nix +++ b/nix/zkllvm/default.nix @@ -4,8 +4,8 @@ clangStdenv.mkDerivation { name = "zkllvm_with_mlir"; src = fetchgit { url = "https://github.com/NilFoundation/zkllvm"; - rev = "47167ae745c198af8c21f1361aed2d15be223301"; # also change hash + version below in cmakeflags - sha256 = "0d77yasbcpyk21dih3w2y2lsjxkrxcd9vj67z4ypkzc3jlnsggah"; + rev = "642f678b027ccd965d2da384301c3217e3530206"; # also change hash + version below in cmakeflags + sha256 = "1chj928acqpyrsvb7g3yhmhn32vj3d7b2h1a9ga008gpblpfhgyb"; fetchSubmodules = true; }; enableParallelBuilding = true; @@ -27,7 +27,7 @@ clangStdenv.mkDerivation { "-DLLVM_ENABLE_RTTI=ON" "-DLLVM_ENABLE_LIBEDIT=OFF" "-DLLVM_INSTALL_UTILS=ON" - "-DZKLLVM_VERSION=v0.1.10" + "-DZKLLVM_VERSION=v0.1.11" ]; postInstall = '' rm -r $out/lib/cmake/crypto3_algebra diff --git a/zkml-onnx-compiler/src/CMakeLists.txt b/zkml-onnx-compiler/src/CMakeLists.txt index 9458174..1d400b1 100644 --- a/zkml-onnx-compiler/src/CMakeLists.txt +++ b/zkml-onnx-compiler/src/CMakeLists.txt @@ -12,4 +12,5 @@ add_onnx_mlir_executable(zkml-onnx-compiler ZkMLIRTransform MLIRZkMlDialect + MLIROpenMPToLLVMIRTranslation ) diff --git a/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPass.cpp b/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPass.cpp index 6a912c3..684b4b4 100644 --- a/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPass.cpp +++ b/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPass.cpp @@ -4,8 +4,8 @@ #include "AffineFullUnrollPass.h" -using mlir::AffineForOp; -using mlir::loopUnrollFull; +using mlir::affine::AffineForOp; +using mlir::affine::loopUnrollFull; void zk_ml::AffineFullUnrollPass::runOnOperation() { getOperation().walk([&](AffineForOp op) { diff --git a/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPattern.cpp b/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPattern.cpp index 8152690..b81f62b 100644 --- a/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPattern.cpp +++ b/zkml-onnx-compiler/src/Passes/mlir/Conversion/AffineFullUnrollPattern.cpp @@ -6,8 +6,8 @@ #include "AffineFullUnrollPattern.h" -using mlir::AffineForOp; -using mlir::loopUnrollFull; +using mlir::affine::AffineForOp; +using mlir::affine::loopUnrollFull; namespace { struct AffineFullUnrollPattern : public OpRewritePattern { diff --git a/zkml-onnx-compiler/src/zkml-onnx-compiler.cpp b/zkml-onnx-compiler/src/zkml-onnx-compiler.cpp index a4cd281..1c02b90 100644 --- a/zkml-onnx-compiler/src/zkml-onnx-compiler.cpp +++ b/zkml-onnx-compiler/src/zkml-onnx-compiler.cpp @@ -1,12 +1,18 @@ #include "mlir/Dialect/Affine/Passes.h" #include "mlir/IR/BuiltinOps.h" #include "mlir/IR/MLIRContext.h" +#include "mlir/Target/LLVMIR/ModuleTranslation.h" +#include "mlir/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.h" +#include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h" +#include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h" #include "llvm/Passes/PassBuilder.h" #include "src/Compiler/CompilerOptions.hpp" #include "src/Compiler/CompilerPasses.hpp" #include "src/Compiler/CompilerUtils.hpp" +#include "src/Builder/FrontendDialectTransformer.hpp" +#include "src/Version/Version.hpp" #include "mlir/Dialect/zkml/ZkMlDialect.h" #include "Passes/mlir/Transform/ElimCopySignPass.h" @@ -51,13 +57,7 @@ int loadOnnxFile(StringRef inputFilename, mlir::MLIRContext &context, mlir::Owni options.shapeInformation = onnx_mlir::shapeInformation; options.allowSorting = true; options.externalDataDir = dirName(inputFilename); - // does not exist at commit a04f518c1 - // options.functionsToDecompose.insert(options.functionsToDecompose.end(), - // onnx_mlir::functionsToDecompose.begin(), - // onnx_mlir::functionsToDecompose.end()); - return onnx_mlir::ImportFrontendModelFile(inputFilename, context, module, errorMessage); - // return onnx_mlir::ImportFrontendModelFile(inputFilename, context, module, - // errorMessage, options); + return onnx_mlir::ImportFrontendModelFile(inputFilename, context, module, errorMessage, options); } std::unique_ptr lowerToLLVM(llvm::LLVMContext &llvmContext, mlir::OwningOpRef &mlirModule, @@ -65,42 +65,27 @@ std::unique_ptr lowerToLLVM(llvm::LLVMContext &llvmContext, mlir:: std::error_code error; // TODO do we want to emit .bc? Or at least make it configureable - mlir::registerLLVMDialectTranslation(*mlirModule->getContext()); + // mlir::registerLLVMDialectTranslation(*mlirModule->getContext()); + // std::unique_ptr llvmModule = mlir::translateModuleToLLVMIR(*mlirModule, llvmContext); + // if (!llvmModule) { + // llvm::errs() << "Failed to translate module to LLVMIR.\n"; + // *error_code = -1; + // return nullptr; + // } + + mlir::registerBuiltinDialectTranslation(*(mlirModule.get().getContext())); + mlir::registerLLVMDialectTranslation(*(mlirModule.get().getContext())); std::unique_ptr llvmModule = mlir::translateModuleToLLVMIR(*mlirModule, llvmContext); if (!llvmModule) { llvm::errs() << "Failed to translate module to LLVMIR.\n"; - *error_code = -1; - return nullptr; + exit(-1); } + // Tailor LLVMIR to add features that cannot be done with MLIR LLVMIR. + // tailorLLVMIR(*llvmModule); + // Write LLVMIR to a file. return llvmModule; } -void runZkMlPasses(std::unique_ptr &llvm_module, llvm::OptimizationLevel OptimizationLevel) { - // create all analyses - // llvm::ModuleAnalysisManager MAM; - // llvm::LoopAnalysisManager LAM; - // llvm::FunctionAnalysisManager FAM; - // llvm::CGSCCAnalysisManager CGAM; - - // llvm::PassBuilder PB; - //// Register all the basic analyses with the managers. - // PB.registerModuleAnalyses(MAM); - // PB.registerCGSCCAnalyses(CGAM); - // PB.registerFunctionAnalyses(FAM); - // PB.registerLoopAnalyses(LAM); - // PB.crossRegisterProxies(LAM, FAM, CGAM, MAM); - - // This one corresponds to a typical -O2 optimization pipeline. - // llvm::ModulePassManager MPM = - // PB.buildPerModuleDefaultPipeline(llvm::OptimizationLevel::O1); - // // we got default Module Passmanager for corresponding OptimizationLevel - // // now add our passes - // llvm::FunctionPassManager FPM; - // FPM.addPass(zk_ml::AddCircuitFnAttrPass()); - // MPM.addPass(llvm::createModuleToFunctionPassAdaptor(std::move(FPM))); - // MPM.run(*llvm_module, MAM); -} - void outputModule(mlir::OwningOpRef &module, std::string &outputFilename, int64_t largeElementLimit = -1) { mlir::OpPrintingFlags flags; @@ -129,32 +114,8 @@ std::unique_ptr translateToLLVMIR(mlir::ModuleOp module, llvm::LLV } int main(int argc, char **argv) { - - /* int optLevel = std::stoi(argv[2]); - switch (optLevel) { - case 0: - onnx_mlir::setOptLevel(onnx_mlir::O0); - break; - case 1: - onnx_mlir::setOptLevel(onnx_mlir::O1); - break; - case 2: - onnx_mlir::setOptLevel(onnx_mlir::O2); - break; - case 3: - onnx_mlir::setOptLevel(onnx_mlir::O3); - break; - default: - llvm::outs() << "opt level must be on of {0,1,2,3}"; - return -2; - }*/ llvm::cl::ParseCommandLineOptions(argc, argv); std::string inputFilename = InputFilename.c_str(); - //=========================== - // LETS SEE IF WE NEED THIS - - // copied from onnx-mlir.cpp (lets see what we need) - // Register MLIR command line options. mlir::registerAsmPrinterCLOptions(); mlir::registerMLIRContextCLOptions(); mlir::registerPassManagerCLOptions(); @@ -162,13 +123,18 @@ int main(int argc, char **argv) { mlir::registerAsmPrinterCLOptions(); llvm::cl::SetVersionPrinter(onnx_mlir::getVersionPrinter); + + onnx_mlir::removeUnrelatedOptions({&onnx_mlir::OnnxMlirCommonOptions, &onnx_mlir::OnnxMlirOptions}); + onnx_mlir::initCompilerConfig(); //=========================== // mlir::MLIRContext context; + mlir::registerOpenMPDialectTranslation(context); + onnx_mlir::loadDialects(context); // does not exist at commit a04f518c1 // context.appendDialectRegistry(onnx_mlir::registerDialects(onnx_mlir::maccel)); // context.loadAllAvailableDialects(); - onnx_mlir::registerDialects(context); + // onnx_mlir::registerDialects(context); context.getOrLoadDialect(); mlir::OwningOpRef module; @@ -178,17 +144,20 @@ int main(int argc, char **argv) { llvm::errs() << errorMessage << "\n"; return rc; } + std::string outputFilename = OutputFilename.c_str(); + onnx_mlir::setupModule(module, context, outputFilename); bool EmitMLIR = EmitLevel::zkMLIR == EmitLevel || EmitLevel::MLIR == EmitLevel; - mlir::PassManager pm(&context, mlir::OpPassManager::Nesting::Implicit); + onnx_mlir::configurePasses(); + mlir::PassManager pm(module.get()->getName(), mlir::OpPassManager::Nesting::Implicit); if (EmitLevel == EmitLevel::ONNX) { - onnx_mlir::addPasses(module, pm, onnx_mlir::EmissionTargetType::EmitONNXIR); + onnx_mlir::addPasses(module, pm, onnx_mlir::EmissionTargetType::EmitONNXIR, outputFilename); } else { - onnx_mlir::addPasses(module, pm, onnx_mlir::EmissionTargetType::EmitMLIR, EmitLevel == EmitLevel::zkMLIR); + onnx_mlir::addPasses(module, pm, onnx_mlir::EmissionTargetType::EmitMLIR, outputFilename, EmitLevel == EmitLevel::zkMLIR); pm.addPass(zk_ml_toolchain::createElimCopySignPass()); if (!EmitMLIR) { // third parameter here is optional in onnx-mlir. Maybe we should do that // too? - onnx_mlir::addKrnlToLLVMPasses(pm, true, true); + onnx_mlir::addKrnlToLLVMPasses(pm, outputFilename, true); } } @@ -198,7 +167,6 @@ int main(int argc, char **argv) { llvm::errs() << "Passmanager failed to run!\n"; return -1; } - std::string outputFilename = OutputFilename.c_str(); if (EmitMLIR || EmitLevel::ONNX == EmitLevel) { outputModule(module, outputFilename);